当前位置: 代码迷 >> Oracle技术 >> 加减合并显示有关问题
  详细解决方案

加减合并显示有关问题

热度:85   发布时间:2016-04-24 08:09:24.0
加减合并显示问题
有一个表A记录如下
id              zje             shuliang       user ..
001          400                4               1111
001         -100              -1              2222
002          100                1               3333

sql语句怎么写才可以让相同id只显示出相减后的记录,zje相减为'0'就不用显示,格式如下:
id             zje              shuliang        user
001          300                 3                1111
002          100                 1                3333
------解决方案--------------------
满不满足你要求
WITH T AS
 (SELECT 001 ID, 400 ZJE, 4 SHULIANG, 2222 VUSER
    FROM DUAL
  UNION
  SELECT 001 ID, -100 ZJE, -1 SHULIANG, 1111 VUSER
    FROM DUAL
  UNION
  SELECT 002 ID, 100 ZJE, 1 SHULIANG, 3333 VUSER FROM DUAL)
SELECT ID,
       SUM(ZJE),
       SUM(SHULIANG),
       MAX(NVL(DECODE(SIGN(ZJE), 1, VUSER, NULL), 0))
  FROM T
 GROUP BY ID
HAVING SUM (ZJE) > 0
  相关解决方案