您的位置:首页 > 数据库

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

2007-12-17 10:22 330 查看
By Ben
作者的一个软件项目的查询系统需求:
有数据表:名称 数量 状态
-----------------------
产品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 名称

Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=130708
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: