我有一個MS SQL查詢SELECT 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'關鍵字放在版本而不是Date_of_Record旁邊時會發生什麼? – IronMan84 2014-10-29 18:36:16
@ IronMan84我得到'錯誤的語法......' – Glowie 2014-10-29 18:38:38
@ IronMan84不可能。 「DISTINCT」適用於整行,而不適用於任何單獨的列。 – 2014-10-29 18:40:43