使用数据透视表将日期显示为列

时间:2018-08-30 09:28:59

标签: sql sql-server pivot

我有一张这样的桌子。

------------------------------------
Id | Name | Date  
-----------------------------------
1  | Syam | 2017-05-23 13:53:20.000
2  | Syam | 2017-05-22 13:53:20.000
3  | Syam | NULL
4  | Ram  | 2017-05-23 13:53:20.000
5  | Ram  | 2017-05-21 13:53:20.000

我需要找出在用户输入指定日期之前7天提交日志的用户。 结果将是这样

输入:2017-05-28 13:53:20.000

Id | Name | 05/23/2017 tuesday | 05/22/2017 Monday | 05/21/2017
--------------------------------------------------------------
1  |Syam  | True               | true              | False
2  |Ram   | True               | False             | True

有人可以帮助我做到这一点吗?我认为枢轴可以用于此目的。但是我不熟悉。

1 个答案:

答案 0 :(得分:0)

您可以使用数据透视

   select pvt.* from 
   (
   select id,name,DATENAME(WEEKDAY, date1) as DayName  from t
   ) as  t1
   PIVOT
   (max(name) for DayName in ([Tuesday],[Monday],[Sunday] )) as pvt -- you can put 7days name here