2017-02-25 32 views
0

我試圖在客戶和訂單日期旁邊重新設置訂單計數,但不確定正確的方法是什麼。SQL - 在客戶和訂單日期旁邊添加計數

該表格將是客戶ID,訂單日期以及客戶的訂單號碼(訂單1爲客戶,訂單2爲客戶等),如果他們在同一日期做了兩個訂單。

現在的數據看起來像下面用一個簡單的「順序/組通過」

| CustomerID | OrderNumber |   Date   | 
---------------------------------------------------------- 
| 0   | 1   | 2010-12-17 00:00:00.000 | 
| 0   | 2   | 2011-08-23 00:00:00.000 | 
| 0   | 3   | 2011-08-29 00:00:00.000 | 
| 0   | 4   | 2011-08-31 00:00:00.000 | 
| 1   | 5   | 2007-10-23 00:00:00.000 | 
| 1   | 6   | 2007-10-23 00:00:00.000 | 
| 2   | 7   | 2004-12-09 00:00:00.000 | 
| 2   | 8   | 2011-08-24 00:00:00.000 | 
| 2   | 9   | 2011-08-24 00:00:00.000 | 
| 3   | 10   | 2004-12-09 00:00:00.000 | 
| 3   | 11   | 2011-08-24 00:00:00.000 | 
| 3   | 12   | 2011-08-24 00:00:00.000 | 
---------------------------------------------------------- 

我想使它看起來像這樣,我能拿到前三列,但不是第三重置每個客戶號碼後

| CustomerID | OrderNumber |  Date    | Order Count | 
------------------------------------------------------------------------ 
| 0   | 1   | 2010-12-17 00:00:00.000 | 1   | 
| 0   | 2   | 2011-08-23 00:00:00.000 | 2   | 
| 0   | 3   | 2011-08-29 00:00:00.000 | 3   | 
| 0   | 4   | 2011-08-31 00:00:00.000 | 4   | 
| 1   | 5   | 2007-10-23 00:00:00.000 | 1   | 
| 1   | 6   | 2007-10-23 00:00:00.000 | 2   | 
| 2   | 7   | 2004-12-09 00:00:00.000 | 1   | 
| 2   | 8   | 2011-08-24 00:00:00.000 | 2   | 
| 2   | 9   | 2011-08-24 00:00:00.000 | 3   | 
| 3   | 10   | 2004-12-09 00:00:00.000 | 1   | 
| 3   | 11   | 2011-08-24 00:00:00.000 | 2   | 
| 3   | 12   | 2011-08-24 00:00:00.000 | 3   | 
| 3   | 13   | 2011-09-24 00:00:00.000 | 4   | 
| 3   | 14   | 2013-08-24 00:00:00.000 | 5   | 
------------------------------------------------------------------------ 

這裏是我在哪裏至今

SELECT  CustomerID, OrderNumber, Date 
FROM   dbo.Orders 
GROUP BY CustomerID, OrderNumber, Date 
order by CustomerID 

謝謝s

回答

4

這個怎麼樣?

SELECT 
    CustomerID 
    ,OrderNumber 
    ,[Date] 
    ,ROW_NUMBER() OVER (PARTITION BY CustomerID ORDER BY OrderNumber) AS OrderCount 
FROM dbo.orders 
; 
+0

這工作,謝謝 – Danimov82

+0

不客氣。 – 3BK

+0

@ 3BK,你用鍵盤加快速度:) –

相關問題