有数据表:
名称    数量   状态
-----------------------
产品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 名称
posted on 2005-09-08 10:08 powerlc 阅读(440) 评论(1)  编辑 收藏 网摘 所属分类: .net项目开发

  回复  引用    
2005-09-16 08:45 | Navy[未注册用户]
I prefer to the second soultion, it clear and easy, right?



发表评论

昵称: [登录] [注册]

主页:

邮箱:(仅博主可见)

评论内容:

  登录  注册

[使用Ctrl+Enter键快速提交评论]

0 232279 CYrjN1Y+fmc=



相关文章:

相关链接: