比方說,我有一個具有以下結構的表格:根據狀態選擇數據 - 有時必須接受某些狀態
ID |日期|名稱|狀態|屬性A |屬性B
現在我想從tabel中選擇所有行 - 但是,如果有兩個來自同一數據並具有相同名稱的項目 - 其中一個具有狀態CANCLED,那麼我只想顯示一個沒有status=CANCLED
。 但是,如果 - 在給定日期只有一個項目,並帶有該名稱 - 那麼無論狀態如何,我都要選擇它。
目前,我對解決方案一無所知 - 我唯一能想到的就是將一個存儲過程與臨時表和大量的if/else語句混合在一起。然而 - 我非常確定必須有辦法解決這個問題 - 可能是一個相當簡單的查詢。
謝謝!
編輯:實施例數據
ID Date Name Status Attribute A Attribute B
----------- ---------- ----------- ---------- ----------- -----------
1 2013-10-17 A Complete AA BB
2 2013-10-17 A Cancled CC DD
3 2013-10-18 A Cancled DD EE
4 2013-10-18 B Complete AA BB
該腳本來創建表(由一些的要求):
CREATE TABLE [dbo].[StackoverflowTest](
[ID] [int] NOT NULL,
[Date] [date] NULL,
[Name] [varchar](50) NULL,
[Status] [varchar](10) NULL,
[Attribute A] [nchar](10) NULL,
[Attribute B] [nchar](10) NULL,
)
基於上面的數據 - 我想返回的線是與那些以下ID:1,3,4
希望這可以讓我的意圖更清晰一點
剛做了SELECT * FROM tbl WHERE [status] <>'Cancled''?請顯示一些示例數據和顯示的輸出。另外你已經嘗試過的任何東西都會很好。 –