作者的一个软件项目的查询系统需求:
有数据表:
名称 数量 状态 ----------------------- 产品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 名称
|