2012-01-03 98 views
0

我需要從SQL Server 2008 R2數據庫中提取報告數據,該數據庫列出了給定日期內所有產品。記錄可以在同一天有多個條目,但我只想要對這些條目進行一次計數。如何在DATETIME不同時選擇包括DATETIME的DISTINCT記錄?

實例記錄:

SerialNumber VARCHAR(20) 
OrderNumber VARCHAR(50) 
Price DECIMAL(7,2) 
TestDateTime DATETIME 

我的看法查詢可能是這個樣子:

SELECT DISTINCT OrderNumber, SerialNumber, Price, TestDateTime 
FROM TestTable 
ORDER BY OrderNumber, SerialNumber 

...然後報告查詢會是這個樣子:

SELECT OrderNumber, SerialNumber, Price 
FROM TestView 
WHERE CONVERT(date, getdate()) = CONVERT(date, TestDateTime) 

...除了我得到一個單獨的(重複)每個日期時間的記錄。我需要日期時間字段,因爲我將根據日期從視圖中選擇記錄,但我也希望給定OrderNumber的價格字段的精確總數,所以我只想查看每個SerialNumber一次。

任何想法?

下一個問題 - 如何獲得具有相同OrderNumber的所有行的總價格?也許這應該是一個獨立的問題...

+1

您需要的日期 - 哪個日期?最老的,最新的? – fge 2012-01-03 21:43:49

+0

看起來你可能有'JOIN',你有'TestTable'。您只是簡單化查詢以幫助我們理解它。如果是這種情況,請發佈完整查詢。 – 2012-01-03 21:55:14

+0

不是一個非常完整的問題。你說建立一個給定的一天,但現在在你的查詢中的日期=。你的意思是每天有多個條目,並且你想要每天爲每個產品排行?即便如此,價格如何變化呢?來吧,如果你需要幫助,但在這個問題上的一些努力。 – Paparazzi 2012-01-03 22:32:40

回答

2

你有沒有考慮只是將其鑄造日期

SELECT DISTINCT OrderNumber, SerialNumber, Price, cast(TestDateTime as date) testDate 
FROM TestTable 
ORDER BY OrderNumber, SerialNumber 
+0

就是這樣!通過不包括日期時間的部分,DISTINCT子句現在可以正常工作......謝謝! – DaveN59 2012-01-04 15:17:51