SQL 返回空记录的外连接问题
SQL outer join issue for returning null records
DECLARE @Temp TABLE (Region VARCHAR(75))
INSERT INTO @Temp
SELECT distinct classname from x where class = 'y' and date = '12/31/2015'
SELECT *
FROM @Temp T LEFT OUTER JOIN x N ON N.Classname = T.Region where T.Region NOT LIKE '%Cash%'
AND N.[Code] = '785'
AND N.Horizon = 'year'
AND N.[date] = '12/31/2015'
这必须从 Temp 返回所有 class 名称,包括在 x 中没有记录的名称。至少那是我的意图。 X 没有温度和相同的条件,只有 returns 它有数据的那些。我想要来自 Temp 的所有 class 名称,它们在 X 中也没有条目。它仍然没有那样做。
无法解决。尝试过 NOT EXISTS,Except 和 Outer apply。 None 他们的工作。请帮忙!
您需要将第二个 table 的条件移动到 on
子句中:
SELECT *
FROM @Temp T LEFT OUTER JOIN
x N
ON N.Classname = T.Region AND
N.[Code] = '785' AND
N.Horizon = 'year' AND
N.[date] = '2015-12-31'
WHERE T.Region NOT LIKE '%Cash%';
假设 date
存储为日期,请为您的查询使用正确的 ISO 标准日期格式。
DECLARE @Temp TABLE (Region VARCHAR(75))
INSERT INTO @Temp
SELECT distinct classname from x where class = 'y' and date = '12/31/2015'
SELECT *
FROM @Temp T LEFT OUTER JOIN x N ON N.Classname = T.Region where T.Region NOT LIKE '%Cash%'
AND N.[Code] = '785'
AND N.Horizon = 'year'
AND N.[date] = '12/31/2015'
这必须从 Temp 返回所有 class 名称,包括在 x 中没有记录的名称。至少那是我的意图。 X 没有温度和相同的条件,只有 returns 它有数据的那些。我想要来自 Temp 的所有 class 名称,它们在 X 中也没有条目。它仍然没有那样做。
无法解决。尝试过 NOT EXISTS,Except 和 Outer apply。 None 他们的工作。请帮忙!
您需要将第二个 table 的条件移动到 on
子句中:
SELECT *
FROM @Temp T LEFT OUTER JOIN
x N
ON N.Classname = T.Region AND
N.[Code] = '785' AND
N.Horizon = 'year' AND
N.[date] = '2015-12-31'
WHERE T.Region NOT LIKE '%Cash%';
假设 date
存储为日期,请为您的查询使用正确的 ISO 标准日期格式。