2017-07-27 84 views
0

我相信这是一个快速的,但尝试了一切,除了答案。我有一个支点脚本的正常工作,除了结果列,我需要100分这样的结果/ 100 Script是枢轴 - 如何总结和计算结果

SELECT 
USERID AS UserId,APPOINTMENTDATE, 
isnull ([1],0) as'other',isnull ([2],0) as 'Medicare' 
FROM 
(SELECT invoices.USERID, APPOINTMENTDATE, 
[total],PAYERCODE,users.LOCATIONID 
FROM APPOINTMENTS 
where 
APPOINTMENTDATE between '2017-01-22' and '2017-01-23' 
) AS SourceTable 
PIVOT 
(
Sum(total) 
FOR PAYERCODE IN ([1], [2]) 
) AS PivotTable; 

所以我想做的是: 总和(总)为类似总和(总/ 100)

任何想法改变.. 干杯

回答

0

添加了这个样品它的工作原理。下面是小提琴:http://sqlfiddle.com/#!6/8eef1/1/0

您的示例代码的问题在于您试图在表格本身而不是数据透视表上进行选择。您需要在'SourceTable'中定义列,然后旋转PayerCode,然后执行Select * FROM(Sourcetable Pivottable)

drop table TestingPivot  
Create table TestingPivot 
(Total INT, 
    Payercode INT, 
    LocationID INT, 
    UserID INT, 
    Name VARCHAR(100)) 

    Insert into TestingPivot values(100, 1, 1, 1, 'Ryan') 
    Insert into TestingPivot values(200, 2, 2, 2, 'Mike') 
    Insert into TestingPivot values(300, 3, 3, 3, 'John') 

    Select * from (
    Select Total/100 as NewTotal, PayerCode, UserID, LocationID, 
    case when PayerCode = 1 then 'Other' 
     when PayerCode = 2 then 'Medicare' 
     else '' 
     end as Type 


    from TestingPivot 
     ) as t 
     Pivot 
     (
     Sum(NewTotal) 
     FOR PayerCode IN ("1","2") 
     ) as P; 
+0

HI。对不起,这与我得到的信息相同,即Msg 102,Level 15,State 1,Line 13 '/'附近的语法错误。 – HAS

+0

如果是这种情况,请在您选择的总数中划分,然后旋转SUM。应该是相同的数学。 Editted。 – Isaiah3015

+0

不,这会引发错误。消息8155,级别16,状态2,行17 “SourceTable”的列3未指定任何列名称。 消息207,级别16,状态1,行19 无效的列名称'total'。尝试了一些变化... – HAS