日期:2014-05-18  浏览次数:20716 次

把一个表里的数据同一天的数量汇总并横按日期横项显示问题
有一个表:
SELECT   YG_NO,TRS_DD,QTY   FROM   TF_JBTZ   ORDER   BY   YG_NO,trs_dd

比如有内容如下:
yg_no                     TRS_DD                                     QTY
000207 2007-03-01   00:00:00.000   4.00000000
000207 2007-03-01   00:00:00.000   1.00000000
000207 2007-03-02   00:00:00.000   3.00000000
000368 2007-03-02   00:00:00.000   5.00000000
991230 2007-03-01   00:00:00.000   6.00000000
991230 2007-03-02   00:00:00.000   3.00000000
991230 2007-03-07   00:00:00.000   3.00000000
991230 2007-03-07   00:00:00.000   2.00000000
。。。。
要按日期TRS_DD查询并按yg_no排列汇总QTY的数值;
如上面000207在2007-03-01有一笔QTY为4,一笔QTY为1,
                        所以在2007-03-01汇总QTY的数值为5;
            000207在2007-03-02只有一笔QTY为3,所以在
                        2007-03-02汇总QTY的数值为3;
            000368在2007-03-02只有一笔QTY为5,所以在
                        2007-03-02汇总QTY的数值为5;
            991230在2007-03-01只有一笔QTY为6,所以在
                        2007-03-02汇总QTY的数值为6;
            991230在2007-03-02只有一笔QTY为3,所以在
                        2007-03-02汇总QTY的数值为3;
            991230在2007-03-07有一笔QTY为3,一笔QTY为2,
                        所以在2007-03-07汇总QTY的数值为5;

比如依上面的数据按日期TRS_DD(2007-03-07~2007-03-31)查询得到如下格式内容:

YG_NO       3月1号   3月2号     3月3号   3月4号   3月5号     3月6号   3月7号...3月31号
000207         5             3                                                                                 ...
000368                       5                                                                                 ...
991230         6             3                                                                         5       ...
......

请问应如何可以实现,谢谢哪位大虾来帮忙解答;


 




------解决方案--------------------
--也算行轉列吧?沒有的日期也要顯示嗎?
declare @sql varchar(8000)
set @sql= ' '
select @sql=@sql+ ',sum(case when trs_dd=