检查所有行是否符合一组记录的条件

时间:2019-03-24 16:47:52

标签: sql select grouping

我正在尝试创建一个查询,以检查销售订单的所有行是否具有这5列等于零的列,然后执行存储过程。如果任何一行都不都符合相同的条件,则不执行。我需要抓住销售订单等于的所有行,然后检查我的列qtytoinv,qtyfulfil,atyalloc,qtyremai,qtyslctd(如果所有行的所有列= 0都执行了)。

当前表的结果:

SOPNUMBE        ATY         QTYRE   QTYINV  QTYFUL  QTYSLCTD
DS-19020        0.00000 0.00000 0.00000 0.00000 0.00000
DS-19020        0.00000 1.00000 0.00000 0.00000 0.00000
DS-19020        0.00000 1.00000 0.00000 0.00000 0.00000
DS-19020        0.00000 1.00000 0.00000 0.00000 0.00000
DS-19020        0.00000 1.00000 0.00000 0.00000 0.00000
DS-19020        0.00000 1.00000 0.00000 0.00000 0.00000

由于并非所有行都不等于零,所以跳过该行或不执行。

1 个答案:

答案 0 :(得分:1)

您可以按sponumbe对表进行分组,并用其他值过滤掉行:

SELECT sponumbe
FROM   mytable
GROUP BY sponumber
HAVING   MAX(aty)      = 0 AND
         MAX(qtyre)    = 0 AND
         MAX(qtyinv)   = 0 AND
         MAX(qtyful)   = 0 AND
         MAX(qtyslctd) = 0