有一个表A记录如下
id zje shuliang user ..
001 400 4 1111
001 -100 -1 2222
002 100 1 3333sql语句怎么写才可以让相同id只显示出相减后的记录,zje相减为'0'就不用显示,格式如下:
id zje shuliang user
001 300 3 1111
002 100 1 3333
id zje shuliang user ..
001 400 4 1111
001 -100 -1 2222
002 100 1 3333sql语句怎么写才可以让相同id只显示出相减后的记录,zje相减为'0'就不用显示,格式如下:
id zje shuliang user
001 300 3 1111
002 100 1 3333
sum(zje),
sun(shuliang),
min(user)
from a
group by id你只要用合计函数就好了,但是user怎么处理要看你的需求了还有就是zje=0不显示 是指项目的还是记录不抽出啊?反正你修改下就可以用了
id zje shuliang user
001 300 3 1111
但是因为表里面因为操作这条记录的user是不同的人,因此查出来分别都显示出来了,单是我只想显示id 001最后加减后的数据,也就是上面的形式。你的方法实现不了哦
但是你这个描述的话还是不能理解你对user的取值要求。比如我都是id 001的。
user 1111 开出zje 100 数量200的单子
user 1112 开出zje 200 数量200的单子
user 1113 开出zje -200 数量-200的单子
user 1115 开出zje 1200 数量2200的单子你最后显示的user是哪个?
如果可以你可以加我QQ 356484834
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