0

我有一个关于 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.Datedatetime2(7)这样的,我得到的数据是,

P.Date = '2006-08-17 15:30:23.0000000' 

但我在比较'2006-08-17'。这里的日期部分是相同的,即使我没有得到结果。

我的目标是在日期匹配时显示 ID 的计数。

我已经尝试过Convert(),但它不允许PIVOTFOR块中使用。

4

1 回答 1

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
于 2012-09-13T10:48:08.437 回答