Проблема возникает из-за двух типов продуктов (скажем, летучих мышей и мячей) и двух диапазонов продуктов (например, бейсбол и крикет).
Я хочу получать заказы на крикетные биты и бейсбольные мячи и наоборот.
Я выполнил запросы, в которых были обнаружены заказы, в которых были как бейсбольная бита, так и крикетный мяч, используя предложение HAVING (см. Код). Но проблема в том, что в том же порядке могла быть крикетная бита, что делает этот ордер действительным.
Вместо этого я хотел бы выполнить запрос, который находит ордера, в которых есть мяч для крикета и любая бита, не являющаясябита для крикета. Это должно учитывать вышеуказанную проблему.
У меня есть данные уровня заказа, данные уровня строки и таблицы данных информации о продукте.
SELECT [LineLevelOrders.OrderNbr]
FROM LineLevelOrders
LEFT JOIN ItemInfo ON [LineLevelOrders.SKU] = [ItemInfo.SKU]
WHERE ( ([ItemInfo.Type] = 'Bats') AND ([ItemInfo.Range] = 'Cricket') )
OR ( ([ItemInfo.Type] = 'Balls') AND ([ItemInfo.Range] = 'Baseballs') )
GROUP BY [LineLevelOrders.OrderNbr]
HAVING COUNT([LineLevelOrders.OrderNbr])>=2