Sql 如何在透视表中使用SUM(不能在聚合函数中使用CAST)
我正在使用以下透视查询:Sql 如何在透视表中使用SUM(不能在聚合函数中使用CAST),sql,sql-server-2008,pivot-table,Sql,Sql Server 2008,Pivot Table,我正在使用以下透视查询: select UserId_Fk,Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday from CheckInCheckOut PIVOT ( SUM(CAST(CountHours as decimal(18,2))) FOR Day IN([Sunday],[Monday],[Tuesday],[Wednesday],[Thursda
select UserId_Fk,Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday
from CheckInCheckOut
PIVOT
(
SUM(CAST(CountHours as decimal(18,2)))
FOR Day
IN([Sunday],[Monday],[Tuesday],[Wednesday],[Thursday],[Friday],[Saturday])
)
as PivotTable
Table[CheckInCheckOut]
CheckInCheckOutId int
UserId_Fk int
CountHours nvarchar(50)
Day nvarchar(50)
我在这里使用SUM有点不对劲。我试过了
select SUM(CAST(CountHours as decimal(18,2))) from CheckInCheckOut
这给了我正确的结果,但我不能在Pivot表中使用相同的结果。因为我没有使用sql server/Pivot,这只是一个猜测,但其中是否应该是group by子句?即
...
as PivotTable
group by UserId_Fk, ...
在进行数据透视查询之前,请尝试转换数据
select UserId_Fk,Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday
from (Select UserId_Fk,CAST(CountHours as decimal(18,2))as CountHours,[Day]
from CheckInCheckOut) as convertedtable
PIVOT
(
SUM(CountHours)
FOR Day
IN([Sunday],[Monday],[Tuesday],[Wednesday],[Thursday],[Friday],[Saturday])
)
as PivotTable