用一条SQL完成数据表的行统计数据库教程 -电脑资料

电脑资料 时间:2019-01-01 我要投稿
【www.unjs.com - 电脑资料】

    数据|统计

作者的一个软件项目的查询系统需求:

    有数据表:名称   数量  状态

    -----------------------

    产品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 名称

最新文章