2012-02-01 108 views
0

我有一張表格將我的客戶鏈接到他們已經簽出的DVD上。我的表叫做CustomerDvds。該表看起來是這樣的:查找SQL Server 2008中每個客戶的記錄總數

CustomerDvds 
- ID 
- CustomerID 
- DvdID 
- CheckOutDate 
- CheckInDate 

我想寫一個查詢,會告訴我每個客戶在特定日期檢出了多少個DVD。目前,我寫了以下內容:

SELECT 
    CustomerID, 
    SUM(DvdID) as 'DVDCount' 
FROM 
    CustomerDvds 
WHERE 
    [CheckOutDate]<=GetUtcDate() AND 
    [CheckInDate]>GetUtcDate() 
GROUP BY 
    [CustomerID] 

不幸的是,我的DVDCount值看起來很高。我究竟做錯了什麼?我該如何解決這個問題?

感謝

+0

您可能希望在查詢之前分得當前的日期和使用它貫穿:'聲明@Today爲日期= GETUTCDATE()'它更像是一個問題的時候在查詢執行時使用'DateTime'並追蹤移動目標。 – HABO 2012-02-01 16:18:19

回答

5

我想你想的數量而不是SUM ...

3

使用COUNT合計不SUM

您正在爲每個客戶添加ID的值(這不會給你任何有用的東西),而不是計算有多少客戶。