Проверить все строки, если соответствует критериям для набора записей

#sql #select #grouping

#sql #выберите #группировка

Вопрос:

Я пытаюсь создать запрос, чтобы проверить, содержат ли все строки Заказа на продажу эти 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:

Вы могли бы сгруппировать таблицу по 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
  

Комментарии:

1. СПАСИБО, Мурейник! Я сидел там целый час, пытаясь разобраться в этом. Я запустил этот быстрый запрос, и он отфильтровал результаты, как ожидалось. Теперь просто учтем это в моей хранимой процедуре. ТЫ МОЛОДЕЦ!