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

關於SQL的兩個關聯表匯總問題
變動表
單號                   日期             數量
OUT020304       2005.5.6       2324
OUT020304       2005.5.6       1233
OUT020405       2005.5.6       2622
OUT020405       2005.5.6       233  
OUT020405       2005.5.7       255
OUT020605       2005.5.7       256
...

上面按日期來匯總單號,應該怎麼寫呢?

------解决方案--------------------
create table tab(單號 varchar(18),日期 datetime, 數量 int)
insert tab select 'OUT020304 ', '2005.5.6 ',2324
union all select 'OUT020304 ', '2005.5.6 ',1233
union all select 'OUT020405 ', '2005.5.6 ',2622
union all select 'OUT020405 ', '2005.5.6 ',233
union all select 'OUT020405 ', '2005.5.7 ',255
union all select 'OUT020605 ', '2005.5.7 ',256


select 單號 , 日期, sum(數量) 數量 from tab group by 單號 , 日期
------解决方案--------------------
按月统计:
select 單號 ,时间=convert(varchar(7),日期,120),sum(數量) 數量
from 表名 group by 單號,convert(varchar(7),日期,120
------解决方案--------------------
select 單號 ,时间=convert(varchar(7),日期,120),sum(數量) 數量
from 表名 group by 單號,convert(varchar(7),日期,120)--少一个 ') '

select select 單號 ,时间=max(日期)--显示结束日期
sum(數量) 數量
from 表名 where 日期 between '2005-05-06 00:00:00 ' and '2005-05-07 23:59:59 '


------解决方案--------------------
select 日期,单号,sum(数量) from 变动表 group by 日期,单号