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

求如下的結果,SQL應該怎麼寫?
我目前有這樣的一個表,表的欄位名稱有
ColorNo       XXS       XS     S       M     L     XL     XXL   箱數       總碼數之和
  001                             10     5       10                               2                 25
  001                             5                                                 1                 5
  021               25                                                             4                 25                          
  021               5                                                               1                 5


我現在要做一個合計是下面這樣的
ColorNo       XXS     XS     S     M     L     XL     XXL
001                           25     10     20    
021               105          
       


------解决方案--------------------
create table t(ColorNo varchar(10),XXS int,XS int,S int,M int,L int,XL int,XXL int,
箱數 int,總碼數之和 int)
insert t select '001 ', ' ',10,5,10, ' ', ' ', ' ',2,25
union all select '001 ', ' ',5, ' ', ' ', ' ', ' ', ' ',1,5
union all select '021 ',25, ' ', ' ', ' ', ' ', ' ', ' ',4,25
union all select '021 ',5, ' ', ' ', ' ', ' ', ' ', ' ',1,5

select ColorNo,XXS=sum(箱數*XXS),XS=sum(箱數*XS),S=sum(箱數*S),M=sum(箱數*M),L=sum(箱數*L),
XL=sum(箱數*XL),XXL=sum(箱數*XXL) from t group by ColorNo


ColorNo XXS XS S M L XL XXL
---------- ----------- ----------- ----------- ----------- ----------- ----------- -----------
001 0 25 10 20 0 0 0
021 105 0 0 0 0 0 0

(所影响的行数为 2 行)