我有一个PIVOT表的查询,比如,
SELECT *
FROM (SELECT ID, ID,Date FROM Table1) AS P
PIVOT
(
COUNT (P.ID)
FOR P.Date in ([08/17/2006],[08/18/2006]) -- [MM/DD/YYYY] - Format
) as pvt
在上面的查询中,P.Date
是datetime2(7)
所以,我得到的数据如,
P.Date = '2006-08-17 15:30:23.0000000'
但我正在与'2006-08-17'
进行比较。这里的日期部分是相同的,即使我没有得到结果。
我的目标是在日期匹配时显示ID的计数。
我尝试使用Convert()
,但它不允许在PIVOT
块中的FOR
表。
答案 0 :(得分:2)
您需要在内部选择中执行CAST()
:
SELECT *
FROM
(
SELECT ID, ID, Cast(yourDateValue as Date) newdate -- perform the conversion here
FROM Table1
) AS P
PIVOT
(
COUNT (P.ID)
FOR newdate in ([08/17/2006], [08/18/2006]) -- [MM/DD/YYYY] - Format
) as pvt