我已经给出了基于你的输出结果集,但完全不能假设你有3月份的周结果(他们会给10和14)
declare @t table (Id int,Task varchar(20),created date)
insert into @t (Id,Task,created)values (1,'mark','2015-01-01 3:02:44 PM'),
(2,'harry','2015-01-01 3:02:44 PM'),
(3,'alex','2015-01-01 3:02:44 PM'),
(4,'jim','2015-01-01 3:02:44 PM'),
(5,'jim','2015-01-01 3:02:44 PM'),
(6,'alex','2015-01-01 3:02:44 PM')
;with CTE as(
SELECT [mark],[harry],[alex],[jim],created FROM (
Select [mark],[harry],[alex],[jim],created from (
Select A.Id,A.Task,A.created,COUNT(A.RN)OVER(PARTITION BY TASK)R from (select ID,Task,created,ROW_NUMBER()OVER(PARTITION BY task order by task desc)RN from @t
GROUP BY ID,Task,created)A)B
PIVOT(MAX(R)FOR Task IN ([mark],[harry],[alex],[jim]))P)V
GROUP BY [mark],[harry],[alex],[jim],created)
select DATEPART(week,created)Week,MIN(mark)[mark],MIN(harry)[harry],MIN(alex)[alex],MIN(jim)[jim] FROM CTE
GROUP BY created
那么,你做了什么? – hkutluay
看看https://technet.microsoft.com/en-us/library/ms177410%28v=sql.105%29.aspx –
你还尝试过什么吗? – Nazmul