SQL SSRS 基于另一行更新行



我有一个问题,我已经搜索过,但我认为我没有使用正确的搜索关键字。希望有人帮忙,

我有一张看起来像这样的桌子,

Name        YEAR
Chicken     2015
Cow         2012
Lion        2014
Lion        **2016**
Tiger       2013
Tiger       2014
Tiger       **2016**

结果

Name        YEAR
Chicken     2015
Cow         2012

我希望将所有相应的名称设置为"NULL",或者最好在 YEAR 为 2016 时删除行。因此,删除了 2 行狮子和 3 行老虎,因为其中一行的 YEAR = 2016。

谢谢!

您可以使用子查询执行此操作。 您不希望看到与年份为 2016 的名称有任何关系,因此您只需将此逻辑写入 where 子句即可。

SELECT Name, Year
FROM table
WHERE Name not in (
    SELECT Name
    FROM table
    WHERE Year = '2016')

对于您的加入情况:

SELECT Name, Year
FROM name_table nt
JOIN year_table yt on yt.id = nt.id
WHERE Name not in (
    SELECT Name
    FROM name_table nt
    JOIN year_table yt on yt.id = nt.id
    WHERE Year = '2016')

最新更新