Sql-Server-2008-R2
當並非所有值都不同時顯示唯一列
Name Status Contact EpisodeNumber AA C E 1 AA C F 1 AA C G 1 AA D H 1 BB D I 2 CC C J 3 DD C K 4
如果 D 出現在給定名稱的任何“狀態”列中,我不想看到它們。每個“聯繫人”都不同,這很好,我需要確保 EpisodeNumber 相同。發生的情況是每次“狀態”更改時,它都會為該名稱創建一個新行,其中包含更改它的聯繫人,所以我不能做一個簡單的選擇 * where status != ‘D’ 因為它會向我顯示其他狀態給定劇集編號。我們正在執行帶有 sql management studio 版本 10.50.6560.0 和報告生成器 3.0 的 SQL Server 2008 R2
Name Status Contact EpisodeNumber CC C J 3 DD C K 4
如果我正確理解您的問題,我認為
NOT EXISTS
應該可以。DECLARE @T TABLE ( NAME VARCHAR(30) ,STATUS VARCHAR(5) ,Contact VARCHAR(5) ,EpisodeNumber INT ); INSERT INTO @T VALUES ('AA', 'C', 'E', 1), ('AA', 'C', 'F', 1), ('AA', 'C', 'G', 1), ('AA', 'D', 'H', 1), ('BB', 'D', 'I', 2), ('CC', 'C', 'J', 3), ('DD', 'C', 'K', 4) ; SELECT * FROM @T t WHERE NOT EXISTS ( SELECT * FROM @T WHERE NAME = t.NAME AND EpisodeNumber = t.EpisodeNumber AND STATUS = 'D' );
| NAME | STATUS | Contact | EpisodeNumber | |------|--------|---------|---------------| | CC | C | J | 3 | | DD | C | K | 4 |