如何用sql 实现把 数据汇总?
T_DATE T_CODE T_DATA1 T_DATA2 T_DATA3
2000-10-01 10424 3 10 27
2000-10-02 10424 2 17 35
2000-10-03 10424 4 5 24
2001-10-04 10426 6 13 26
2001-10-05 10423 7 6 20
2001-10-06 10425 1 7 19
2002-10-07 10427 4 9 27
2002-10-08 10428 6 9 11
2002-10-09 10429 4 3 28
2002-10-10 10430 6 16 18
2002-10-11 10121 7 5 22
2002-10-12 10122 5 16 23
2002-10-13 10123 1 9 22
2003-10-14 10221 2 10 16
2003-10-15 10222 6 13 29
2003-10-16 10321 5 16 11
2003-10-17 30821 2 11 35
2003-10-18 30822 2 9 14
我想把上面的数据按照两种方式汇总,一:T_DATE 按年汇总; 二.T_DATE 按月汇总;T_CODE 也是一个汇总条件,即实现每个T_CODE的按照T_DATE(年/月)分别汇总.T_data是要汇总的数据.
问题点数:50、回复次数:2Top
1 楼sqlhub(SQLHUB)回复于 2006-03-06 12:55:37 得分 30
http://www.hgsql.com
CREATE TABLE TXT.TEST (T_DATE,T_CODE,T_DATA1,T_DATA2,T_DATA3);
SELECT * FROM CROSSX((SELECT * FROM TXT.TEST),'t_code','year(t_date) year, month(t_date) month','sum(t_data1) d1,sum(t_data2) d2,sum(t_data3) d3');
T_CODE 10121 10121 10121 10122 10122 10122 10123 10123 10123 10221 10221 10221 10222 10222 10222 10321 10321 10321 10423 10423 10423 10424 10424 10424 10425 10425 10425 10426 10426 10426 10427 10427 10427 10428 10428 10428 10429 10429 10429 10430 10430 10430 30821 30821 30821 30822 30822 30822
YEAR MONTH D1 D2 D3 D1 D2 D3 D1 D2 D3 D1 D2 D3 D1 D2 D3 D1 D2 D3 D1 D2 D3 D1 D2 D3 D1 D2 D3 D1 D2 D3 D1 D2 D3 D1 D2 D3 D1 D2 D3 D1 D2 D3 D1 D2 D3 D1 D2 D3 D1 D2 D3
2000 10 9 32 86 9 32 86
2000 10 9 32 86 9 32 86
2001 10 7 6 20 1 7 19 6 13 26 14 26 65
2001 10 7 6 20 1 7 19 6 13 26 14 26 65
2002 10 7 5 22 5 16 23 1 9 22 4 9 27 6 9 11 4 3 28 6 16 18 33 67 151
2002 10 7 5 22 5 16 23 1 9 22 4 9 27 6 9 11 4 3 28 6 16 18 33 67 151
2003 10 2 10 16 6 13 29 5 16 11 2 11 35 2 9 14 17 59 105
2003 10 2 10 16 6 13 29 5 16 11 2 11 35 2 9 14 17 59 105
10 7 5 22 5 16 23 1 9 22 2 10 16 6 13 29 5 16 11 7 6 20 9 32 86 1 7 19 6 13 26 4 9 27 6 9 11 4 3 28 6 16 18 2 11 35 2 9 14 73 184 407
Top
2 楼sqlhub(SQLHUB)回复于 2006-03-06 12:57:34 得分 20
上面结果复制到excel中,效果很好的
Top




