2013-10-16 34 views
-4

我有這種類型的表。行號相關

no CustID    Amount 
1  1234    1000 
2  2345    500 
3  1234    1000 
4  6789    500 
5  1234    1000 
6  6789    350 
7  2345    600  
8  1234    250 

我需要這樣的

No CustId    Amount 
1  1234    1000 
2  1234    1000 
3  1234    1000 
4  1234    250 
1  2345    500 
2  2345    600 
1  6789    500 
2  6789    350 

輸出請提供SQL此

+0

你試過了什麼? –

+0

我假設你在預期輸出中混合了第5和第6行。你也應該多處理一些問題。包含關於RDBMS和版本的信息。解釋你在做什麼。你已經嘗試了什麼。 –

+0

在MySQL中工作:您可以在'No'列設置'AUTO_INCREMENT()',並使用'PRIMARY_KEY(否,CustId)'。這將自動爲每個客戶創建唯一的號碼並將它們存儲在表中,就像您的輸出一樣。在這種情況下,您需要重新插入數據,而不需要設置「否」列。 – Atle

回答

-1
select * from TABLE_NAME order by CustId; 
2
SELECT row_number() over (partition by CustId order by Amount desc) No, 
CustId, Amount 
FROM <table> 
ORDER BY CustId, Amount DESC 
1

由於行數都是在下面的查詢組根據客戶的ID被分配將在T-SQL中工作:

select ROW_NUMBER() over (partition by CustID order by Amount desc) as [No],CustID,Amount 
from table1