У меня есть запрос, который вычисляет сумму / количество сумм (QTY) для префикса для конкретного клиента.Префикс был использован вместо продукта для сокращения версий / наименований вариантов.
Этот запрос выполняется для двух отдельных таблиц, связанных внешним ключом, где client_ID - это общий атрибут и первичный ключ в третьей таблице.Одна таблица называется Закуплена, а другая Установлена.
Я пытаюсь рассчитать разницу между установленным и приобретенным количеством, а также количеством дополнительных полей в каждой таблице.Концепция похожа на проверку запасов (Amountinstock - AmountSold).
Проблема, с которой я сталкиваюсь, заключается в том, что это создает перекрестное соединение для результата.Каковы методы, чтобы избежать перекрестного соединения?Решат ли это внешние, правые или левые объединения или мне нужно использовать оператор объединения.
Таблицы следующие:
Client ( Client_ID*, Client)
Purchased (Client_ID, Product, Prefix, License Status, Amount, Deployed at, Start_date, End_date)
Installed (Client_ID, Product, Prefix, Publisher, Version, Domain, Server, Amount)
*Primary Key
Количество кода запроса префикса и клиента:
SELECT
Installed.Client_ID,
Client.Client,
Installed.Prefix,
SUM(Installed.Amount) AS QuantityofLicensesInstalled
FROM Installed
INNER JOIN Client
ON Installed.Client_ID=Client.Client_ID
GROUP BY Installed.Client_ID, Installed.Prefix, Client.Client;
Код, пытающийся присоединиться к результатам:
SELECT
Installed.Prefix,
QuantityofLicensesInstalled,
Purchased.Prefix,
QuantityofLicensesPurchased,
(QuantityofLicensesInstalled-QuantityofLicensesPurchased) AS Differencebetweenvalues
FROM ClientIDPrefixSumInstalled, ClientIDPrefixSumPurchased;
В настоящее время создается результат перекрестного соединения.