SQL Server, как отобразить данные, которые находятся в августе месяце? - PullRequest
2 голосов
/ 28 марта 2012

привет, ребята, у меня небольшая проблема с моим кодом SQL мне нужно отображать только данные в базе данных за август 2008 года.

мой код до сих пор это

я должен показывать продажи каждого продавца в августе 2008

ВЫБЕРИТЕ p.BusinessEntityID, p.FirstName, p.LastName, ROUND (SUM (soh.TotalDue), 2) AS «Общий объем продаж» FROM Person.Person p, Sales.SalesPerson s, Sales.SalesOrderHeader soh ГДЕ p.BusinessEntityID = s.BusinessEntityID AND p.BusinessEntityID = soh.SalesPersonID AND soh.OrderDate> = '2008' AND soh.OrderDate <'2009' GROUP BY p.BusinessEntityID, P.FirstName, P.LastName ЗАКАЗАТЬ по p.LastName </p>

у меня есть изображение моей базы данных
http://www.2shared.com/photo/h2-jMQyP/AdventureWorks2008.html

Ответы [ 2 ]

2 голосов
/ 28 марта 2012

Вы можете попробовать это:

SELECT DISTINCT p.BusinessEntityID,p.FirstName,p.LastName
FROM Person.Person p INNER JOIN Sales.SalesPerson s
    ON p.BusinessEntityID = s.BusinessEntityID
WHERE MONTH(p.your_date) = 8
  AND YEAR(p.your_date) = 2008

Просто примечание: когда вам нужно объединить таблицы, используйте оператор JOIN вместо WHERE;Движок sql здесь понимает, что вы объединяете таблицы и конвертируете план выполнения в JOIN, но в других ситуациях вы рискуете сделать декартово произведение таблиц, что делает ваш запрос действительно огромным!

1 голос
/ 28 марта 2012

Если посмотреть на структуру вашей базы данных, если вы хотите получать продажи для конкретного человека, вам, вероятно, придется добавить ссылку и в SalesOrderHeader

РЕДАКТИРОВАТЬ 2: Небольшое изменение в сценарии получит общую сумму всех продаж всех продавцов в августе 2008

 SELECT p.BusinessEntityID,p.FirstName,p.LastName, SUM(soh.TotalDue)
 FROM Person.Person p , Sales.SalesPerson s,Sales.SalesOrderHeader soh

 WHERE  p.BusinessEntityID = s.BusinessEntityID
 AND s.BusinessEntityID = soh.BusinessEntityID

 AND MONTH(soh.OrderDate) = 8
 AND YEAR(soh.OrderDate) = 2008
 GROUP BY p.BusinessEntityID
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...