2017-08-09 26 views
0

我有表:SSRS或SQL传递一组唯一的第一个元素

Taskname   |Checklist| Start  | End  |Training | StartDT     | EndDT     | User | Answertype 
QuizMC1708060531 | QuizMC | 1502033469885 | 1502033478839 | 1 | 2017-08-06 17:31:09.883 | 2017-08-06 17:31:18.837 | adminEn | Multiple 
QuizMC1708060531 | QuizMC | 1502033469885 | 1502033478839 | 1 | 2017-08-06 17:31:09.883 | 2017-08-06 17:31:18.837 | adminEn | Text 
QuizMC1708060533 | QuizMC | 1502033603938 | 1502033609396 | 1 | 2017-08-06 17:33:23.937 | 2017-08-06 17:33:29.393 | adminEn | Multiple 
QuizMC1708060533 | QuizMC | 1502033603938 | 1502033609396 | 1 | 2017-08-06 17:33:23.937 | 2017-08-06 17:33:29.393 | adminEn | Text 
QuizMC1708071122 | QuizMC | 1502097788914 | 1502114086923 | 1 | 2017-08-07 11:23:08.913 | 2017-08-07 15:54:46.920 | adminEn | Multiple 
QuizMC1708071122 | QuizMC | 1502097788914 | 1502114086923 | 1 | 2017-08-07 11:23:08.913 | 2017-08-07 15:54:46.920 | adminEn | Text 
QuizMC1708070354 | QuizMC | 1502114092033 | 1502173089869 | 1 | 2017-08-07 15:54:52.030 | 2017-08-08 08:18:09.867 | adminEn | Multiple 
QuizMC1708070354 | QuizMC | 1502114092033 | 1502173089869 | 1 | 2017-08-07 15:54:52.030 | 2017-08-08 08:18:09.867 | adminEn | Text 

所以我想(通过SQL或SSRS)组由TASKNAME所有条目,这样仅占任务名称存在一个条目。在这种情况下,这意味着每隔一行将被丢弃。这个表的大小可能不同,这意味着一个任务名称组可以有1个条目,2,5,10。对于我来说哪一行并不重要,只是每个组只有一行。

编辑:我不能松散任何行,添加新行是好的。

+0

如何确定哪一行是第一个和第二个是一个whithin组?或者你可以采取任何行? – sepupic

+0

任何行都可以。 – stackmonkey

+1

由于这个事实是/是一个劳动节的工作日。 :)删除了MySQL的 – stackmonkey

回答

1

可以如下查询:

Select top(1) with ties * from yourtable 
    order by row_number() over (partition by TaskName order by startDt) 
1

试试这个

SELECT Taskname ,Checklist, Start ,End,Training, StartDT, EndDT, User , Answertype 
FROM 
(
SELECT Taskname ,Checklist, Start ,End,Training, StartDT, EndDT, User , Answertype , 
ROW_NUMBER()OVER(PArtition by Taskname ORder by StartDT DESC) AS Dup 
FROm YourTable 
) 
DT WHERE dt.Dup=1 
+0

我已经改变了一点,因为关键字,来:SELECT TASKNAME,清单,开始,[结束],培训,StartDT,EndDT,用户,Answertype \t \t \t \t \t FROM \t \t \t \t \t( \t \t \t \t \t SELECT TASKNAME,核对表,开始,[结束],培训,StartDT,EndDT,用户,Answertype, \t \t \t \t \t ROW_NUMBER()OVER(PARTITION BY通过StartDT DESC TASKNAME顺序)Dup的 \t \t \t \t \t从@MyTable \t \t \t \t \t) \t \t \t \t \t dt其中dt.Dup = 1,但该代码不能解析DT(DT DT WHERE。转储= 1) – stackmonkey

相关问题