免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 6224 | 回复: 2
打印 上一主题 下一主题

求个SQL语句-同列sum后相减 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-07-23 13:40 |只看该作者 |倒序浏览
设有一个出入库记录表
产品代码  出入 数量
a            1      10
b            1       5
c             2      3
a             2      5
b             2       3
.....


出入: 1=入库, 2=出库

想要得出 每个产品 总入库数量-总出库数量
语句越少越好。

谢谢!

我忽然想起出来了,可以用 sum(case when 出入=1 then 数量 end) - sum(case when 出入=2 then 数量 end)

如果是两个表,一个出库表,一个入库表,又如何求每个产品 总入库-总出库呢?

入库表
产品代码  出入 数量
a            1      10
b            1       5

出库表
产品代码  出入 数量
c             2      3
a             2      5
b             2       3

[ 本帖最后由 zjj_wx 于 2008-7-23 14:04 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2008-07-23 14:39 |只看该作者
SELECT                ISNULL(a.product_code, b.product_code)        AS product_code,
                        ISNULL(a.num, 0) - ISNULL(b.num, 0)                AS  \'sum\'
FROM
(
        SELECT product_code,  sum(num)  AS num
        FROM _ta
        GROUP BY product_code
) AS  a
FULL JOIN
(
        SELECT product_code, sum(num)  AS num
        FROM _tb
        GROUP BY product_code
) AS  b
ON b.product_code = a.product_code

论坛徽章:
0
3 [报告]
发表于 2008-07-23 15:22 |只看该作者

刚把答案写好,看到larrywall的回答,都不好意思贴了。

select 入库表.产品代码,入库表.数量和-出库表.数量和 from
(select 产品代码,sum(数量) 数量和 from 入库表  group by 产品代码) a left join
(select 产品代码,sum(数量) 数量和 from 出库表  group by 产品代码) b
on 入库表.产品代码=出库表.产品代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP