Я новичок в этом форуме и sql и надеялся, что кто-нибудь сможет мне помочь.
Я пытаюсь создать запрос, который будет возвращать записи с одинаковыми значениями во всех полях, кроме одного.
У меня есть следующие поля в таблице:
Номер детали | Год выпуска | Марка | Модель
Я хочу вернуть все записи, которые доступны в течение одного года (2011 г.), но недоступны в другом (2012 г.). Например:
Номер детали | Год выпуска | Марка | Модель
123456 | 2011 | Форд | Фокус
Эта запись вернется, потому что нет комбинации 123456 | 2012 | Ford | Focus.
Однако я не хочу, чтобы какие-либо записи возвращались, если есть запись за 2012 год.
Номер детали | Год выпуска | Марка | Модель
123456 | 2011 | Форд | Фокус
123456 | 2012 | Форд | Фокус
Записи не должны возвращаться, если это условие существует.
Надеюсь, я это хорошо объяснил. Пожалуйста, дайте мне знать, если мне нужно уточнить какие-либо вопросы.
Заранее спасибо!
Редактировать :
Это выглядит правильно?
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#