看下面这张表
库存帐本:
__________________________________________
单据类型 商品名称 数量 仓库
-------------------------------------------
采购单 电视机 10 1号仓库
采购单 电视机 10 1号仓库
采购单 洗衣机 10 1号仓库
销售单 电视机 5 1号仓库
销售单 洗衣机 5 1号仓库
____________________________________________我想实现下面商品进销存查询:
进销存查询:
___________________________________________
商品名称 采购数量 销售数量
-------------------------------------------
电视机 20 5
洗衣机 10 5
__________________________________________
如何构建SQL语句才能实现上面的查询(我的后台数据库为ACCESS)
库存帐本:
__________________________________________
单据类型 商品名称 数量 仓库
-------------------------------------------
采购单 电视机 10 1号仓库
采购单 电视机 10 1号仓库
采购单 洗衣机 10 1号仓库
销售单 电视机 5 1号仓库
销售单 洗衣机 5 1号仓库
____________________________________________我想实现下面商品进销存查询:
进销存查询:
___________________________________________
商品名称 采购数量 销售数量
-------------------------------------------
电视机 20 5
洗衣机 10 5
__________________________________________
如何构建SQL语句才能实现上面的查询(我的后台数据库为ACCESS)
sum(iif(单据类型='采购单',数量,0)) as 采购数量,
sum(iif(单据类型='销售单',数量,0)) as 销售数量
from 库存帐本
group by 商品名称
Declare @t table (a varchar(10),b varchar(20),C int ,d varchar(20) )
insert into @t select '采购单', '电视机', 10 , '1号仓库'
insert into @t select '采购单', '电视机', 10 , '1号仓库'
insert into @t select '采购单', '洗衣机', 10 , '1号仓库'
insert into @t select '销售单', '电视机' , 5 , '1号仓库'
insert into @t select '销售单', '洗衣机', 5 , '1号仓库'
select t.b , max(case t.a when '采购单' then c end )'采购数量',
max(case t.a when '销售单' then c end ) '销售数量'
from (select a, b,sum(c) c from @t Group by a,b ) t
Group by t.b
---搞一个搞辛苦,,,LZ不给分我都晕了
Declare @t table (a varchar(10),b varchar(20),C int ,d varchar(20) )
insert into @t select '采购单', '电视机', 10 , '1号仓库'
insert into @t select '采购单', '电视机', 10 , '1号仓库'
insert into @t select '采购单', '洗衣机', 10 , '1号仓库'
insert into @t select '销售单', '电视机' , 5 , '1号仓库'
insert into @t select '销售单', '洗衣机', 5 , '1号仓库'
select t.b '商品名称' , max(case t.a when '采购单' then c end )'采购数量',
max(case t.a when '销售单' then c end ) '销售数量'
from (select a, b,sum(c) c from @t Group by a,b ) t
Group by t.b
select
商品名称,
sum(Case when 单据类型='采购单' then 数量 else 0 end ),
sum(Case when 单据类型='销售单' then 数量 else 0 end )
from 库存帐本
group by 商品名称
insert into test values('采购单', '电视机', 10, '1号仓库')
insert into test values('采购单', '电视机', 10, '1号仓库')
insert into test values('采购单', '洗衣机', 10, '1号仓库')
insert into test values('销售单', '电视机', 5, '1号仓库')
insert into test values('销售单', '洗衣机', 5, '1号仓库') select goodsname 商品名称,sum(buyamount) 采购数量,sum(salemount) 销售数量
from (
select goodsname,sum(amount) buyamount,0 salemount from test
where dtype='采购单'
group by goodsname
union
select goodsname,0 buyamount,sum(amount) salemount from test
where dtype='销售单'
group by goodsname)
group by goodsname