2012-03-28 95 views
2

你好,大家好我有我的SQL代碼 一個小問題,我必須只顯示數據是在8月的2008年數據庫sql server如何顯示8月份的數據?

我的代碼,到目前爲止,這是

我應該顯示每個銷售人員在2008年8月的銷售額

SELECT p.BusinessEntityID,p.FirstName,p.LastName,ROUND(SUM(soh.TotalDue),2)AS'Total Attributed Sales' FROM Person .Person p,Sales.SalesPerson s,Sales.SalesOrderHeader soh WHERE 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 ORDER BY p.LastName

我有我的數據庫的圖像
http://www.2shared.com/photo/h2-jMQyP/AdventureWorks2008.html

+0

表格的結構是什麼?你有專欄有日期嗎?或年份和月份列? – 2012-03-28 07:06:21

+0

我們需要更多關於數據庫的信息,我會在[銷售]表中存儲某種日期。你要過濾的日期在哪裏?和它存儲的格式是什麼? – kamui 2012-03-28 07:07:11

+0

@ Uriel_SVK,@ kamui 請檢查我的問題的編輯版本 – user1297398 2012-03-28 07:21:03

回答

2

你可以試試這個:

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聲明;這裏的sql引擎理解你正在加入表格並將執行計劃轉換爲使用JOIN,但在其他情況下,你可能會冒險做表笛卡爾產品,這使得你的查詢真的很大!

+0

請查看我編輯的問題 – user1297398 2012-03-28 07:21:30

1

看你的數據庫結構,如果你想獲得一個特定人銷售,你可能要添加一個鏈接到的SalesOrderHeader以及

編輯2:少許修改腳本會得到所有銷售人員在2008年8月的全部銷售額的總額

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 
+0

@ kamui hey bro我的問題是 寫一個查詢,找出所有SalesOrders放置到每個銷售人員的總銷售額。使用訂單的TotalDue查找銷售額和SalesPersonID以查找要歸因的銷售人員。例如。的SalesOrderID 43659應歸功於SalesPersonID 279 – user1297398 2012-03-28 07:44:18

+0

@kumui沒有工作的人 – user1297398 2012-03-28 07:47:52

+0

@神威 我應該得到17行,而不是我得到的只有10行的銷售數據是錯誤的 – user1297398 2012-03-28 10:26:09

相關問題