我有一个SQL查询,它搜索数据库并显示三列:Date,Dataset,&媒体。对于搜索特定数据集的此类查询,有数百个相同的媒体属于此数据集。但我只对看过媒体感兴趣。
这是我现在的询问:
SELECT
DATEADD(HOUR,-4,CONVERT(DATETIME,LEFT([Date],8)+' '+
SUBSTRING([Date],10,2)+':'+
SUBSTRING([Date],12,2)+':'+
SUBSTRING([Date],14,2)+'.'+
SUBSTRING([Date],15,3))) [Date],
[Object] AS [Dataset],
SUBSTRING(Parms,1,6) AS [Media]
FROM (Select CONVERT(VARCHAR(18),[Date]) [Date],
[Object],
MsgId,
Parms
FROM JnlDataSection) A
Where MsgID = '325' AND
[Object] = 'UAT_sbusvrwm553 - INCR'
Order By Date DESC;
数据集:
UAT
UAT
UAT
UAT
MEDIA:
V40555
V40555
V40555
V40001
数据集:
UAT
UAT
UAT
UAT
MEDIA:
V40555
V40001
V40002
V40003
我知道我必须在某个地方加上一个明确的条款,我不太确定在哪里。请注意我正在使用SQL Server Management Studio 2008。
答案 0 :(得分:0)
DISTINCT在SELECT之后立即进行。
您的查询将如下所示
SELECT DISTINCT DATEADD ...
答案 1 :(得分:0)
这就是我在上一篇评论中的意思。它肯定会起作用
SELECT DISTINCT [Dataset], [Media]
FROM (
SELECT
DATEADD(HOUR,-4,CONVERT(DATETIME,LEFT([Date],8)+' '+
SUBSTRING([Date],10,2)+':'+
SUBSTRING([Date],12,2)+':'+
SUBSTRING([Date],14,2)+'.'+
SUBSTRING([Date],15,3))) [Date],
[Object] AS [Dataset],
SUBSTRING(Parms,1,6) AS [Media]
FROM (Select CONVERT(VARCHAR(18),[Date]) [Date],
[Object],
MsgId,
Parms
FROM JnlDataSection) A
Where MsgID = '325' AND
[Object] = 'UAT_sbusvrwm553 - INCR'
Order By Date DESC
);