0

我有一个搜索数据库并显示三列的 SQL 查询:日期、数据集和媒体。对于像这样搜索特定数据集的查询,有数百个相同的媒体属于该数据集。但我只对看一次媒体感兴趣。

这是我现在的查询:

  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

媒体:

V40555

V40555

V40555

V40001

所需的输出在哪里:

数据集:

UAT

UAT

UAT

UAT

媒体:

V40555

V40001

V40002

V40003

我知道我必须在某个我不太确定的地方放置一个不同的子句。请注意,我使用的是 SQL Server Management Studio 2008。

4

2 回答 2

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
);
于 2013-07-15T19:48:31.860 回答
0

DISTINCT 紧跟在 SELECT 之后。

您的查询看起来像

SELECT DISTINCT DATEADD ...
于 2013-07-15T19:23:11.820 回答