求一个SQL语句, 不知道该怎么写假设有如下两个表,表一是销售记录, 表二是所有商品表一:商品名称购买数量购
求一个SQL语句, 不知道该怎么写
假设有如下两个表,表一是销售记录, 表二是所有商品
表一:
商品名称购买数量购买时间
--------------------------
麻花102006-07-21 00:00:00
棉花糖12007-01-21 00:00:00
小花片22007-02-21 00:00:00
白菜212007-03-21 00:00:00
麻花202007-04-21 00:00:00
棉花糖182007-05-21 00:00:00
小花片232007-06-21 00:00:00
白菜292007-07-21 00:00:00
麻花1022007-08-21 00:00:00
棉花糖132007-09-21 00:00:00
小花片292007-10-21 00:00:00
白菜452007-11-21 00:00:00
表二:
商品名称最近365天销售数量
-------------------------
麻花122
棉花糖24
小花片54
白菜95
我要怎么做才能从表一中查出今天往前推365天(也就是最近一年)的销售量并更新表二?
本来我是想靠编程, 根据表二一条一条查询表一再来更新, 可是这样效率太低了.
请高人指教~谢谢各位达人...
[解决办法]
- SQL code
select * into #temp from (select 商品名称,sum(购买数量)总数量 from 表一 where datediff(dd,b.购买时间,getdate())<=365 group by 商品名称)aupdate 表二 set 最近365天销售数量=b.总数量 from 表二 a,#temp bwhere a.商品名称=b.商品名称
[解决办法]
- SQL code
update 表二set 最近365天销售数量 = n.购买数量from 表二 m , (select 商品名称 , 购买数量 = sum(购买数量) from 表一 where datediff(day , 购买时间 , getdate()) <= 365 group by 商品名称) nwhere m.商品名称 = n.商品名称
[解决办法]
- SQL code
--不用临时表update 表二 set 最近365天销售数量=(select sum(购买数量) from 表一 where 商品名称=b.商品名称 and 购买时间>=dateadd(day,-365,getdate()) and 购买时间<getdate())from 表二 a
[解决办法]
update 表二
set 最近365天销售数量 = n.购买数量
from 表二 m , (select 商品名称 , 购买数量 = sum(购买数量) from 表一 where datediff(day , 购买时间 , getdate()) <= 365 group by 商品名称) n
where m.商品名称 = n.商品名称
