Я хочу объединить три таблицы и рассчитать сумму (количество) таблицы А.
Я попробовал что-то, и я получил желаемый результат. Но все же у меня путаница, основанная на статистической функции и предложении Group By.
При вычислении значения суммы путем объединения двух или более таблиц, какие столбцы мы должны упомянуть в предложении Group By и зачем нам нужно указывать эти столбцы?
Например: вот моя таблица и требуемый запрос.
TableA: ItemID, JobOrderID, CustomerID, DivisionID, Quantity
TableB: ItemID, ItemName, SpecificationID
TableC: SpecificationID, SpecificationName
TableD: DivisionID, DivisionName
TableE: JobOrderID, JobOrderNo.
TableF: CustomerID, CustomerName
Я хочу получить сумму (количество) на основе ItemID
, CustomerID
, JobOrderID
и DivisionID
.
Я написал следующий запрос, и он работает нормально. Но если я удалю какой-либо столбец в предложении Group By, он не даст желаемого результата. Зачем? Что здесь делает предложение Group By? Как указать предложение Group By при использовании функции Aggregate? Вот мой запрос.
SELECT
B.ItemName + ' - ' + C.SpecificationName AS 'ItemName',
SUM(A.Quantity) AS 'Quantity',
A.ItemID,
D.DivisionName,
F.CustomerName,
E.JobOrderNo,
A.DivisionID,
A.JobOrderID,
A.CustomerID
FROM
TableA A
INNER JOIN TableB B ON B.ItemID = A.ItemID
INNER JOIN TableC C ON C.SpecificationID = B.SpecificationID
INNER JOIN TableD D ON D.DivisionID = A.DivisionID
LEFT JOIN TableE E ON E.JobOrderID = A.JobOrderID
LEFT JOIN TableF F ON F.CustomerID = A.CustomerID
WHERE
A.ItemID = @ItemID
GROUP BY
A.ItemID,
A.JobOrderID,
A.DivisionID,
A.CustomerID,
D.DivisionName,
F.CustomerName,
E.JobOrderNo,
B.ItemName,
C.SpecificationName
Любой, пожалуйста, дайте предложение о предложении Group By, рассмотрев это в качестве примера.