我是这个论坛和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我没有看到这个问题的要求。 –
嗯,我想,但你只是把问题关闭一年,直到有三年的数据:) –