У меня есть три таблицы:
Sales.SalesOrderHeader
:
SalesOrderID
(PK) OrderDate
TotalDue,SalesPersonID
- ...
Sales.SalesPerson
:
BusinessEntityID
(PK) - ...
Person.Person
:
BusinessEntityID
(PK) FirstName
LastName
- ...
Таблица SalesPerson
действует как ассоциированная сущность, которая вносит толькообщий PK (то же имя, что и в Person
и имя SalesPersonID
в SalesOrderHeader
).
Теперь я хочу отобразить таблицу, подобную следующей:
BusinessEntityID FirstName LastName Total attributed sales
---------------- --------- -------- ----------------------
1 285 Saeeed Abbas 32323.88
2 287 Amy Albert 1214323.98
… … … … …
Естьнекоторые salesOrders
с null
продавцом, поэтому я хочу проигнорировать это и подвести итог продаж (суммировать TotalDue
) за 2008 год каждым продавцом.
На данный момент это мой код T-SQL:
select
SUM(s.TotalDue) as 'Total attributed sales',
p.BusinessEntityID,
p.FirstName,
p.LastName
from Sales.SalesOrderHeader as s
right outer join Sales.SalesPerson as sp on s.SalesPersonID=sp.BusinessEntityID
left outer join Person.Person as p on sp.BusinessEntityID=p.BusinessEntityID
where
s.OrderDate between '2008-01-01 00:00:00.000' and '2008-12-31 23:59:59.999'
and SalesPersonID is not null
group
--Order
by SalesOrderID,
SalesPersonID
Синтаксических ошибок нет, но мой запрос не работает должным образом.
Ошибка SQL Serverсообщение выглядит как
Столбец Person.Person.BusinessEntityID 'недопустим в списке выбора, поскольку он не содержится ни в статистической функции, ни в предложении GROUP BY.
Так может ли кто-нибудь помочь мне в этом, пожалуйста?Ваша помощь очень ценится.