у меня сложный запрос, который нужно написать, но я не могу его понять
вот мои столы
Продажа - одна строка для каждой продажи, совершенной в системе
SaleProducts - одна строка для каждой строки в счете-фактуре (аналогично OrderDetails в NW)
Предложения - список возможных сделок / предложений, на которые может иметь право продажа
DealProducts - список товаров, которые необходимо приобрести, чтобы получить сделку
сейчас я пытаюсь сделать запрос, который будет сообщать мне о каждой сделке, по которой он может получить
соответствующие поля:
Продажа: SaleID (PK)
SaleProducts: SaleID (FK), ProductID (FK)
Специальные предложения: DealID (PK)
DealProducts: DealID (FK), ProductID (FK), мандаты (int) для требуемого кол-ва
Я считаю, что я должен иметь возможность использовать какое-то перекрестное или внешнее соединение, но это не работает
вот один пример (около 30 вещей, которые я пробовал)
SELECT DealProducts.DealID, DealProducts.ProductID, DealProducts.Mandatories,
viwSaleProductCount.SaleID, viwSaleProductCount.ProductCount
FROM DealProducts
LEFT OUTER JOIN viwSaleProductCount
ON DealProducts.ProductID = viwSaleProductCount.ProductID
GROUP BY DealProducts.DealID, DealProducts.ProductID, DealProducts.Mandatories,
viwSaleProductCount.SaleID, viwSaleProductCount.ProductCount
Проблема в том, что он не показывает никаких сделок с товарами, которые не были выполнены (возможно, из-за объединения ProductID). Мне нужно, чтобы также появлялись продажи, не соответствующие требованиям, тогда я могу отфильтровать любой SaleID, который существует в этом запросе where AmountBought < Mandatories
и т.д.
Спасибо за вашу помощь