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