求一段SQL代码,谢谢大家!
表:product(产品表)
pro_id pro_name pro_lower(库存下限) pro_upper(库存上限)
1 电视 5 50
2 水果 10 60
表:stock(库存表)
sto_id pro_id pro_amount(数量) pro_stoarage(所在仓库)
1 1 3 1
2 1 1 2
3 2 30 1
4 2 10 2
表:storage (仓库表)
storage_id storage_name
1 主仓库
2 家电库
如何在存储过程中汇总得到:
pro_id pro_name pro_amount(总数量) 主仓库(数量) 家电库(数量) ...
1 电视 4 3 1
2 水果 40 30 10
并且能分别查询出:
库存总数量 <产品表中产品下限的产品
库存总数量> 产品表中产品上限的产品
------解决方案--------------------declare @sql varchar(8000)
set @sql= ' '
select @sql=@sql+ ',[ '+storage_name
+ '(数量)]=sum(case pro_stoarage when '+rtrim(storage_id)
+ ' then pro_amount else 0 end) '
from storage
set @sql= 'select p.pro_id,p.pro_name,pro_amount=sum(pro_amount) '+@sql
+ ' from product p,stock s where p.pro_id=s.pro_id group by p.pro_id,p.pro_name '
exec(@sql)
------解决方案--------------------<