2016-02-29 116 views
-1

我遇到了一個我搜索過的問題,但我不認爲我使用了正確的搜索關鍵字。希望有人幫助,基於另一行的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」或良好地去除線的一年因此其中2條獅子和3條老虎線被刪除,因爲其中有一條YEAR = 2016.

謝謝!

回答

0

你可以用子查詢來做到這一點。您不希望看到任何與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') 
+0

不仍然只是刪除與2016年的一條線?我認爲這個問題是我的連接阻止了這個邏輯的運作。我應該早一點提到。上面的列是來自2個不同的表,其中我有一個內部連接的ID – ssidenable

+0

這些年份的表有什麼?它只是身份證和年份,每行都有不同的ID? –