У меня есть MS SQL QuerySELECT DISTINCT на основе нескольких столбцов
SELECT DISTINCT Date_of_Record, Computer_Name, IP_Address, Agent_Version, Mac_Address
FROM [SEP_Versions].dbo.Computers
WHERE Computer_Name in (SELECT Computer_Name
FROM [SEP_Versions].dbo.Computers
GROUP BY Computer_Name
HAVING COUNT(DISTINCT Agent_Version) > 1)
AND [SEP_Versions].dbo.Computers.COMPUTER_NAME LIKE '%s001'
AND [SEP_Versions].dbo.Computers.IP_Address LIKE '%.100'
ORDER BY Computer_Name, Date_of_Record
Это выводит
Date Computer IP Version Mac
2014-10-24 COMP001 10.10.10.10 12.1.3001.165 NULL
2014-10-25 COMP001 10.10.10.10 12.1.3001.165 NULL
2014-10-26 COMP001 10.10.10.10 12.1.3001.165 NULL
2014-10-27 COMP001 10.10.10.10 12.1.4013.4013 NULL
2014-10-28 COMP001 10.10.10.10 12.1.4013.4013 NULL
2014-10-29 COMP001 10.10.10.10 12.1.5773.2276 NULL
Как изменить SELECT DISTINCT
заявление, так что выводит записи с отчетливым версии в ближайшее Дата, т.е.
Date Computer IP Version Mac
2014-10-24 COMP001 10.10.10.10 12.1.3001.165 NULL
2014-10-27 COMP001 10.10.10.10 12.1.4013.4013 NULL
2014-10-29 COMP001 10.10.10.10 12.1.5773.2276 NULL
@Pradeep
Ваши выходы раствор
Date Computer IP Version Mac
2014-10-17 COMP001 10.10.10.10 12.1.3001.165 NULL
2014-10-17 COMP002 10.10.10.11 12.1.4013.4013 NULL
2014-10-17 COMP003 10.10.10.12 12.1.5773.2276 NULL
2014-10-17 COMP004 10.10.10.14 11.0.5003.2276 NULL
@ 1010 и @AWinkle
Если я бегу
SELECT DISTINCT Computer_Name, IP_Address, Agent_Version
FROM dbo.Computers
WHERE Computer_Name in (SELECT Computer_Name
FROM dbo.Computers
GROUP BY Computer_Name
HAVING COUNT(DISTINCT Agent_Version) > 1)
AND dbo.Computers.COMPUTER_NAME LIKE '%s001'
AND dbo.Computers.IP_Address LIKE '%.100'
ORDER BY Computer_Name
Тогда я получаю
Computer IP Version Mac
COMP001 10.10.10.10 12.1.3001.165 NULL
COMP001 10.10.10.10 12.1.4013.4013 NULL
COMP001 10.10.10.10 12.1.5773.2276 NULL
Как изменить оператор SQL, так что добавляет соответствующий Date_of_Record
столбец
Что происходит, когда вы помещаете ключевое слово 'DISTINCT' рядом с Version вместо Date_of_Record? – IronMan84
@ IronMan84 Я получаю 'Неправильный синтаксис ...' – Glowie
@ IronMan84 Невозможно. 'DISTINCT' применяется ко всей строке, а не к отдельным столбцам. –