我是這個論壇和SQL的新手,希望有人能夠幫助我。根據字段值的組合條件返回記錄
我想創建一個查詢,將返回所有字段中除了一個字段具有相同值的記錄。
我在表中具有以下字段:
零件號|年|製作|型號
我想回到那個在一年(2011年)是可用的所有記錄,但在另一個不可用(2012年)。例如:
零件號|年|製作|型號
123456 | 2011 |福特|關注
這個記錄將返回,因爲沒有123456 | 2012 |福特|焦點組合。
不過,我不希望任何的返回的記錄,如果沒有爲2012年
零件號記錄|年|製作|型號
123456 | 2011 |福特|關注
123456 | 2012 | Ford | Focus
如果存在此情況,則不應該返回記錄。
我希望我解釋得很好。如果我需要澄清任何問題,請告訴我。
在此先感謝!
編輯:
這是否正確?
SELECT *
FROM [mytable].[dbo].[apps] yt
WHERE yt.make in (47,54, 48, 59, 3, 42, 21, 67, 1168, 76, 40, 39)
and yt.model in (432, 2484, 16206, 2487, 6831, 5858, 659, 663, 2816, 688, 668, 670, 6089, 2427, 752, 21, 349, 356, 108, 883, 2440, 16227, 1011, 303, 6867, 110, 440, 975, 286, 287)
and yt.Year = 2011
AND NOT EXISTS(SELECT NULL
FROM [mytable].[dbo].[apps] yt2
WHERE yt.part# = yt2.part#
AND yt.make = yt2.make
AND yt.model = yt2.model
AND yt2.Year = 2012)
order by part#
如果你已經3年? –
@BinaryWorrier我沒有看到這個問題的要求。 –
嗯,我想,但你只是把問題關閉一年,直到有三年的數據:) –