2014-10-28 38 views
0

我目前使用PIVOT产生这样的表有这个疑问:如何使用自定义显示使用数据透视查询

Name |Total |01-10-2014 |02-10-2014  
dd |500 | 300  |200  
bb |400 | 200  |200  
ff |150 | 100  |50 

查询是这样

select * from (
    select 
     COALESCE(RNAME, 'NO NAME') as Name, 
     Total, 
     CONVERT(varchar(10), date1,105) as Date, 
     BILLAMT 
    from #temp 
    where date1 >= '2014-10-01' and date1 <= '2014-10-02' 
) as D 
PIVOT(SUM(BILLAMT) for Date in ([01-10-2014],[02-10-2014])) as P 

我需要order by RNAME。和总的右端 ..任何帮助将不胜感激...

+1

通过在查询的末尾添加“order by NAME ASC”排序答案。 :) – Indrah 2014-10-28 10:07:24

+0

所以你不再有问题吗?你的问题解决了? – Tanner 2014-10-28 10:08:19

+0

没有。第一个问题解决了。我需要显示总字段@右端。我无法解决这个问题。它的工作原理是 – Indrah 2014-10-28 10:11:36

回答

0

如果你知道列列表,然后尝试这个,否则你需要将其改为动态数据透视表。

SELECT Name, 
     [01-10-2014], 
     [02-10-2014], 
     Total 
FROM (SELECT COALESCE(RNAME, 'NO NAME')  AS Name, 
       Total, 
       CONVERT(VARCHAR(10), date1, 105) AS Date, 
       BILLAMT 
     FROM #temp 
     WHERE date1 >= '2014-10-01' 
       AND date1 <= '2014-10-02') AS D 
     PIVOT(Sum(BILLAMT) 
      FOR Date IN ([01-10-2014], 
         [02-10-2014])) AS P 
ORDER BY Name 
+0

。谢谢:) – Indrah 2014-10-29 05:27:12

相关问题