MYSQL извлекает данные в зависимости от возвращаемых строк
Я работаю над запросом mysql, который отфильтровывает определенные случаи в зависимости от того, сколько строк возвращено.
Я пытаюсь отфильтровать любые категории поддержки, когда количество возвращаемых строк равно 1, но оставить категорию поддержки, если набор результатов превосходит более 1.
У меня изначально была эта идея, однако кажется, что она не будет работать.
SELECT stockmaster.description, SUM(salesorderdetails.quantity), stockmaster.categoryid as qty
FROM salesorderdetails, stockmaster
where salesorderdetails.stkcode=stockmaster.stockid
and orderno='5222'
group by stockmaster.description
HAVING CASE WHEN stockmaster.categoryid = 'S&M' THEN COUNT(*) >= 2 ELSE COUNT(*) = 1 END
Любая помощь будет с благодарностью принята.
1 ответ
Попробуй это
SELECT *
FROM
(
SELECT stockmaster.description,
SUM(salesorderdetails.quantity),
stockmaster.categoryid as qty ,
COUNT(*) AS count
FROM salesorderdetails, stockmaster
where salesorderdetails.stkcode=stockmaster.stockid
and orderno='5222'
group by stockmaster.description
HAVING CASE WHEN stockmaster.categoryid = 'S&M'
) MAIN_DATA
WHERE MAIN_DATA.count >1