透视加入

时间:2013-10-18 18:29:37

标签: sql join syntax pivot

select 'Total' as PPT_TMT,    
[Lastname1], [Lastname2], [Lastname3], [Lastname4], [Lastname5]    
from    
     (   
     select u.Lastname, o.PriceTotal, o.MarginTotal   
     from dbo.Orders o join dbo.[User] u on o.UserID = u.UserID  
     where UserID in (393, 455, 496, 530, 531)  
     and CompletedDate > dateadd(m, -1, GETDATE())  
     ) AS SourceCode  
PIVOT  
(  
     SUM(SUM(o.PriceTotal) - SUM(o.MarginTotal))   
     FOR Lastname IN ([Lastname1], [Lastname2], [Lastname3], [Lastname4], [Lastname5])  
) AS Gain; 

此查询似乎不会为我运行。每次都有相同的语法错误。

“Msg 102,Level 15,State 1,Line 12 '('。“

附近的语法不正确

以下是我引用的一些资源:

http://technet.microsoft.com/en-us/library/ms177410(v=sql.105).aspx

Inner join a SQL Pivot table

如果您有任何想法,请告诉我们。

谢谢

1 个答案:

答案 0 :(得分:0)

您有SUM(SUM(X) - SUM(Y)),可以简化为SUM(X) - SUM(Y)。但是,我不相信PIVOT支持这样一个简单的表达;你需要在你的内部查询中这样做。