Вот пример того, что я пытался сделать до сих пор:
Макет таблицы:
Инвентарь
ID | lowrange | highrange
-------------------------------
1 | 15 | 20
2 | 21 | 30
Аудит (не используетсяв этом запросе помимо объединения)
MissingOrVoid
ID | Item | Missing | Void
---------------------------------
1 | 17 | 1 | 0
1 | 19 | 1 | 0
Самый последний запрос, который я пытался использовать:
SELECT I.*,
SUM(
(I.HIGHRANGE - I.LOWRANGE + 1)
- (Count(M.Missing) from M where M.ID = I.ID)
- (Count(M.Void) from M where M.ID = I.ID)) AS Item_Quantity
FROM Inventory I
JOIN Audit A
ON A.ID = I.ID
JOIN MissingOrVoid M
ON M.ID = I.ID
Результат должен быть:
ID | lowrange | highrange | Item_Quantity
-----------------------------------------------
1 | 15 | 20 | 4
2 | 21 | 30 | 10
Не могу точно вспомнить, где я внес изменения, но в предыдущей попытке ранее было получено сообщение об ошибке: «Невозможно выполнить агрегатную функцию для выражения, содержащего агрегат или подзапрос».В настоящее время ошибка имеет неправильный синтаксис рядом с «from» (тот, что находится рядом с M.Missing, но, насколько я знаю, по минимальным знаниям SQL, эти синтаксические проблемы вызывают явный сбой, и могут существовать основные проблемы с запросом, которые не видны довсе проблемы с синтаксисом исправлены).
Часть, на которой я действительно бомбардирую, это, очевидно, секция SUM ().Я далек от архитектора баз данных, поэтому кто-то может объяснить, как правильно выполнить это, и, возможно, указать мне направление к ресурсу, чтобы узнать об этом типе функции?
Спасибо