2012-02-01 103 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的值(这不会给你任何有用的东西),而不是计算有多少客户。