求助一个SQL语句

青草根儿 2012-03-03 12:15:29
库存表:
产品编码 名称 型号 单价 出入库 数量
001 桌子 a1 10 入 5
002 桌子 a2 20 入 8
003 椅子 z1 30 入 7
001 桌子 a1 10 入 4
002 桌子 a2 20 出 2
001 桌子 a1 10 出 3

我想得到 库存情况 也就是每种产品库存有多少(每种产品的总入库-总出库)
结果如下:

产品编码 名称 型号 单价 出入库 数量
001 桌子 a1 10 入 6
002 桌子 a2 20 入 6
003 椅子 z1 30 入 7


...全文
43 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
ACMAIN_CHM 2012-03-03
  • 打赏
  • 举报
回复
select 产品编码,名称,型号,单价,'入' as 出入库,sum(case 出入库 when '入' then 数量 when '出' then -数量 end)
from 库存表
group by 产品编码,名称,型号,单价
lygcw9602 2012-03-03
  • 打赏
  • 举报
回复
Create Cursor t1 (产品编码 C(10),名称 C(10),型号 C(10),单价 I,出入库 C(10),数量 I)
Insert Into t1 Values ('001','桌子','a1',10,'入',5)
Insert Into t1 Values ('002','桌子','a2',20,'入',8)
Insert Into t1 Values ('003','椅子','z1',30,'入',7)
Insert Into t1 Values ('001','桌子','a1',10,'入',4)
Insert Into t1 Values ('002','桌子','a2',20,'出',2)
Insert Into t1 Values ('001','桌子','a1',10,'出',3)
Select 产品编码,名称,型号,单价,Sum(Iif(ALLTRIM(出入库)='出',-数量,数量)) As 库存数量 From t1 Group By 产品编码 ORDER BY 产品编码 INTO CURSOR TTT
BROWSE
longspring 2012-03-03
  • 打赏
  • 举报
回复
考虑到实际情况,入库价格可能会由于分批入库而不同,所以价格应该在求出库存后再按照计算规则如平均值或其他算法来回填,并且在库存报表中用不到出入库标志了。
十豆三 2012-03-03
  • 打赏
  • 举报
回复
Create Cursor t1 (产品编码 C(10),名称 C(10),型号 C(10),单价 I,出入库  C(10),数量 I)
Insert Into t1 Values ('001','桌子','a1',10,'入',5)
Insert Into t1 Values ('002','桌子','a2',20,'入',8)
Insert Into t1 Values ('003','椅子','z1',30,'入',7)
Insert Into t1 Values ('001','桌子','a1',10,'入',4)
Insert Into t1 Values ('002','桌子','a2',20,'出',2)
Insert Into t1 Values ('001','桌子','a1',10,'出',3)

Select 产品编码,名称,型号,单价,'入' As 出入库,Sum(Iif(出入库='出',-数量,数量)) As 数量 From t1 Group By 产品编码,名称,型号,单价

*-- 下面应该更合理
Select 产品编码,名称,型号,Sum(Iif(出入库='出',-数量,数量)) As 库存数量 From t1 Group By 产品编码,名称,型号

2,723

社区成员

发帖
与我相关
我的任务
社区描述
VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
社区管理员
  • VFP社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧