我在哪里添加Distinct子句

时间:2013-07-15 19:19:28

标签: sql distinct

我有一个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。

2 个答案:

答案 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
);