首页 > 开发 > 综合 > 正文

用一条SQL完成数据表的行统计

2024-07-21 02:07:07
字体:
来源:转载
供稿:网友
作者的一个软件项目的查询系统需求:
有数据表:名称    数量   状态
-----------------------
产品a    10     进货
产品a    20     销售
产品b    20     进货 要查询结果为:产品名称   库存数量
-----------------------
产品a        -10 
产品b         20解决方法一:
select
distinct 名称,
(isnull((select sum(a.数量) from 库存表 a where a.名称 = 库存表.名称 and a.状态='进货'), 0)
-
isnull((select sum(a.数量) from 库存表 a where a.名称 = 库存表.名称  and a.状态='销售'), 0)) as 库存数量
from
库存表

解决方法二(access):
select 名称,sum(iif(状态='进货',1,-1) * 数量) as  库存数量 from 库存表 group by 名称

解决方法三(access):
select 名称,sum(iif(状态='进货',数量,0)-iif(状态='销货',数量,0)) as  库存数量 from 库存表 group by 名称



发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表