Как объединить таблицы в SQL с помощью функции SUM и группы? - PullRequest
0 голосов
/ 06 июня 2019

Я создаю отчет для отображения стоимости проекта и его доходовМне нужно сгруппировать сумму счетов A / P и сумму счетов A / R в соответствии с проектом.

В одном и том же проекте может быть много счетов A / P и счетов A / R, которые могут включать в себя одни и те же предметы. Если имеется 5 счетов A / P с одинаковыми предметами, такими как A, B, CI необходимо получить мудрую суммусумма также (по строке Общая сумма)

Все имена и код проектов (PrjCode-Primary Key) основаны в отдельной таблице OPRJ. Другие структуры таблиц следующим образом Счет-фактура A / P - OPCH (основные сведения) Ссылка наPCH1 (Сведения об элементе) на первичном ключе - DocEntry PCH1 Линии Связь с OPRJ на PCH1.Project = OPRJ.PrjCode

Счет A / R - OINV (основные сведения) Ссылка с INV1 (Сведения об элементе) на первичном ключе -DocEntry INV1 Lines Link с OPRJ на INV1.Project = OPRJ.PrjCode

Я пытаюсь выполнить этот запрос, но не могу получить сумму

select a.PrjCode,a.PrjName,b.ItemCode,sum(b.LineTotal),Sum(c.DocTotal),sum(e.DocTotal)
from OPRJ a 
Left Join PCH1 b on b.Project = a.PrjCode
Left Join OPCH c on c.DocEntry = b.DocEntry
Left Join INV1 d on d.Project = a.PrjCode and b.Project = d.Project
Left Join OINV e on e.DocEntry = d.DocEntry
Group by 
a.PrjCode,a.PrjName,c.DocTotal,e.DocTotal,b.ItemCode,b.LineTotal

Вывод, что я ожидаю, выглядит следующим образом

enter image description here

Sql Выход без суммы

enter image description here

1 Ответ

0 голосов
/ 06 июня 2019

вы должны удалить значения, которые вы суммируете, из группы:

select a.PrjCode,a.PrjName,b.ItemCode,sum(b.LineTotal),Sum(c.DocTotal),sum(e.DocTotal)
from OPRJ a 
Left Join PCH1 b on b.Project = a.PrjCode
Left Join OPCH c on c.DocEntry = b.DocEntry
Left Join INV1 d on d.Project = a.PrjCode and b.Project = d.Project
Left Join OINV e on e.DocEntry = d.DocEntry
Group by 
a.PrjCode,a.PrjName,b.ItemCode
...