这样的sql怎么写

image.png

目前有这样一张表,根据货号来区分,如果当前货号的有一样的品类为0或者负数,全部都显示,如果该货号的所有品类的数量都为0 则不显示,哪位高手可以写

Peihowe 发布于 2021-5-18 11:11
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共9回答
最佳回答
2
听雨轩Lv6初级互助
发布于2021-5-18 11:44

select * from 明细表 where 货号 in (select 货号 from 明细表 group by 货号 having sum(abs(数量))>0)

最佳回答
0
星空下Lv6初级互助
发布于2021-5-18 11:24

select * from 明细表 where 货号 in (select 货号,sum(数量) from 明细表 group by 货号 having sum(数量)>0)

  • 听雨轩 听雨轩 你这个sql会报错
    2021-05-18 11:42 
最佳回答
0
snrtuemcLv8专家互助
发布于2021-5-18 11:24(编辑于 2021-5-18 11:25)

~~~~~~~~~

最佳回答
0
LSQ000Lv5中级互助
发布于2021-5-18 11:40

 select * from test where 货号 in

(select 货号 from test where 数量 <> 0 group by 货号)

最佳回答
0
杨朝健Lv5中级互助
发布于2021-5-18 11:54(编辑于 2021-5-18 12:11)

select 货号,品类,数量

from 表 t

where exists (

  select 1 from 表

  where 货号=t.货号 

    and (数量<0 or t.数量<0 or (数量=0 and t.数量>0) or (数量>0 and t.数量=0))

)

全正或全0会过滤

只过滤全0:

select 货号,品类,数量

from 表 t

where exists (

  select 1 from 表

  where 货号=t.货号 

    and  数量+t.数量<>0

)

最佳回答
0
Z4u3z1Lv6专家互助
发布于2021-5-18 13:07

首先找出如果当前货号的有一样的品类为0或者负数 的数据

SELECT 货号 FROM 表 WHERE SL<=0

再找出 所有品类的数量都为0 

SELECT 货号,SUM(ABS(数量)) FROM 表 GROUP BY SUM(ABS(数量)) HAVING SUM(ABS(数量))=0

最后合并

SELECT * FROM 表 WHERE 1=1 AND 

EXISTS(SELECT * FROM 表 A WHERE A.SL<=0 AND 表.货号=A.货号 ) AND 

NOT EXISTS(SELECT * FROM (SELECT 货号,SUM(ABS(数量)) FROM 表 GROUP BY SUM(ABS(数量)) HAVING SUM(ABS(数量))=0) B WHERE B.货号=表.货号 )

最佳回答
0
nininiLv0见习互助
发布于2021-5-18 13:21

SELECT  货号,品类,SUM(数量) FROM  ww t

GROUP BY  货号,品类

HAVING sum(数量)<>0

最佳回答
0
DylanHLv4见习互助
发布于2021-5-19 11:45

select * from 明细表 

where 货号 in 

(select

货号

from 明细表

group by 货号

having 

count(case when 数量<=0 then 1 end) > 0 

and count(case when 数量=0 then 1 end) <> count(数量))

最佳回答
0
AntidoteLv4见习互助
发布于2021-5-21 17:39

with  a as(select t.*,sum(数量) over(partition by 货号,品类) as 合计)

select a.货号,a.品类,a.数量 from a

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

通过 partition by 分组求不同货号,品类的数量,只要合计大于0就显示全部

  • 9关注人数
  • 961浏览人数
  • 最后回答于:2021-5-21 17:39
    请选择关闭问题的原因
    确定 取消
    返回顶部