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
Другие вопросы по тегам