仅传递组的第一个元素的SSRS或SQL

仅传递组的第一个元素的SSRS或SQL,sql,sql-server,reporting-services,Sql,Sql Server,Reporting Services,我有一张桌子: 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:3

我有一张桌子:

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对所有条目进行分组,以便每个Taskname只存在一个条目。在这种情况下,这意味着每第二行都将被丢弃。此表的大小可能不同,这意味着一个Taskname组可以有1个条目2、5、10。对我来说,哪一行并不重要,重要的是每组只有一行

编辑:我不能松开任何行,添加新行是可以的。

试试这个

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
试试这个

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

您可以按以下方式进行查询:

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

您可以按以下方式进行查询:

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

您如何确定组中哪一行是第一行,哪一行是第二行?或者你可以坐任何一排?任何一排都行。因为这是/曾经是一个懒散的工作日删除MySQL如何确定组中哪一行是第一行,哪一行是第二行?或者你可以坐任何一排?任何一排都行。因为这是/曾经是一个懒散的工作日删除了mysqlI。由于关键字的原因,我对其进行了一些更改:选择任务名、检查表、开始、[End]、培训、开始、结束、用户、应答类型从选择任务名、检查表、开始、[End]、培训、开始、结束、用户、应答类型,ROW_NUMBEROVERPArtition by Taskname ORder by StartDT DESC AS Dup FROm@MyTable dt其中dt.Dup=1但代码无法解析其中dt.dump=1的dt dt。由于关键字的原因,我将其稍作更改,改为:选择任务名、检查表、开始、[End]、培训、StartDT、EndDT、用户、,从中选择任务名、检查表、开始、[End]、培训、开始日期、结束日期、用户、回答类型、行数按任务名顺序按开始日期进行划分按开始日期描述为Dup从@MyTable dt开始,其中dt.Dup=1,但代码无法解析其中dt.dump=1的dt