Я бегу SQL Server 2014 и у меня есть следующий T-SQL-запрос:T-SQL запрос, чтобы удалить дубликаты записей в выводе на основе одной конкретной колонке
USE MYDATABASE
SELECT *
FROM RESERVATIONLIST
WHERE [MTH] IN ('JANUARY 2015','FEBRUARY 2015')
RESERVATIONLIST
упоминается в приведенном выше коде является Посмотреть. Запрос дает мне следующий вывод (выдержка):
ID NAME DOA DOD Nights Spent MTH
--------------------------------------------------------------------
251 AH 2015-01-12 2015-01-15 3 JANUARY 2015
258 JV 2015-01-28 2015-02-03 4 JANUARY 2015
258 JV 2015-01-28 2015-02-03 2 FEBRUARY 2015
Вышеуказанный результат состоит из около 12 000 записей.
мне нужно изменить мой запрос так, чтобы он устраняет все дубликаты ID и дать мне следующие результаты:
ID NAME DOA DOD Nights Spent MTH
--------------------------------------------------------------------
251 AH 2015-01-12 2015-01-15 3 JANUARY 2015
258 JV 2015-01-28 2015-02-03 4 JANUARY 2015
Я пытался что-то вроде этого, но это не работает:
USE MYDATABASE
SELECT *
FROM RESERVATIONLIST
WHERE [MTH] IN ('JANUARY 2015', 'FEBRUARY 2015')
GROUP BY [ID]
HAVING COUNT ([MTH]) > 1
что логику для выбора строки с '«ЯНВАРЕ 2015'' и не '» Февраль 2015' 'для' ID = 258' – ughai
Нет конкретной логики. Я просто хочу, чтобы запрос выводил один из них. – user3115933
Вы можете так, если хотите. Однако данные в результате не будут иметь реального смысла. Было бы хорошим предложением либо удалять столбцы из результата, либо суммировать их с суммой [ночей, проведенных], мин (м), как первая, max (mth) как последняя'. В первой ситуации ответ будет близок к ответу на deepak pawars, иначе вам лучше использовать оператор GROUP BY для сворачивания итогов. –