Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
向复杂SQL查询添加联接_Sql_Join - Fatal编程技术网

向复杂SQL查询添加联接

向复杂SQL查询添加联接,sql,join,Sql,Join,我有一个现有的SQL查询,需要向其中添加一个联接,这样,只有当另一个表中的列的值与联接指定的值相同时,才会返回此查询的结果。我以前做过连接,但它们总是基于更简单的查询。我只是不确定在哪里插入连接,我尝试过的每件事都有语法问题。我想用英语说: 现有查询…连接另一个表,其中ANOTHERTABLE.COLUMNNAME=“SOMEVALUE” 查询是: ; WITH cte_DateFormat AS (SELECT ServerName, CONVERT(DATE, Date

我有一个现有的SQL查询,需要向其中添加一个联接,这样,只有当另一个表中的列的值与联接指定的值相同时,才会返回此查询的结果。我以前做过连接,但它们总是基于更简单的查询。我只是不确定在哪里插入连接,我尝试过的每件事都有语法问题。我想用英语说:

现有查询…连接另一个表,其中ANOTHERTABLE.COLUMNNAME=“SOMEVALUE”

查询是:

    ; WITH cte_DateFormat AS (SELECT        ServerName, CONVERT(DATE, Date, 103) AS Date, [Capacity(GB)], [Free Space (GB)], Region
                                                           FROM            [Some_Table]), cte_Rank AS
    (SELECT        ROW_NUMBER() OVER (PARTITION BY ServerName, CAST(YEAR(Date) AS VARCHAR(4)) + CAST(MONTH(Date) AS VARCHAR(2))
      ORDER BY Date DESC) AS ID, Region, ServerName, Date, [Capacity (GB)], [Free Space (GB)]
FROM            cte_DateFormat)
    SELECT        Region, ServerName, Date, [Capacity (GB)], [Free Space (GB)]
     FROM            cte_Rank
     WHERE        ID = 1
     ORDER BY Date DESC, Region DESC

听起来好像你不想加入,你想要求在另一个表中存在一个值。因此,存在以下用途:

; WITH cte_DateFormat AS (...) , cte_Rank AS (...)
SELECT Region, ServerName, Date, [Capacity (GB)], [Free Space (GB)]
FROM cte_Rank
WHERE ID = 1
AND EXISTS
(
  select * 
  from anothertable 
  where anothertable.servername = cte_Rank.ServerName 
  and ... -- some other criteria if needed
)
ORDER BY Date DESC, Region DESC

您可以使用sqlfiddle来放置示例表吗?您想连接表的哪一列
cte_rank
?与列“ServerName”连接cte_DateFormat和cte_rank都是cte。您可以像加入表一样加入其中任何一个。请看这里: