2017-02-22 104 views
0

我一直在尋找,但找不到結果。也許我沒有設法說好,請全部原諒。只計算一個條目的第一條記錄爲1

這裏是一個樣本的數據讓我有這樣的策略表

policy_Id name deleted invoice number amount 
2341  jeffa  0  po02345  £10.00 
2342  jeffa  0  po02345  £0.00 
2343  jeffa  0  po02345  £5.00 
6348  kross  0  po84762  £2.00 
4723  mad   0  po67452  £3.00 

結果我期待將這個樣子

policy_Id name deleted invoice number amount Count_policy Added 
2341  jeffa  0  po02345  £10.00  1 
2341  jeffa  0  po02345  £0.00  0 
2341  jeffa  0  po02345  £5.00  0 
6348  kross  0  po84762  £2.00  1 
4723  mad  0  po67452  £3.00  1 

我希望能夠與MS SQL查詢來做到這一點。對於發票號碼。 po2345,金額列有3個條目。我想算1爲第一和零對剩餘的2

感謝所有

+0

你有所有相關表的表定義嗎?還有你已經試過的查詢了嗎? – Myonara

+0

好吧我會在今天看到,看起來和我正在處理的數據非常相似。謝謝 – user3011898

回答

0

你可以這樣說:

SELECT policy_Id, name, deleted, invoice_number, amount, CASE ROW_NUMBER() OVER (PARTITION BY policy_Id ORDER BY someId) WHEN 1 THEN 1 ELSE 0 END Count_Policy 
FROM your_table 
ORDER BY policy_Id 

隨着ROW_NUMBER(),你可以算後的行數「幕後「分組和整理。

ORDER BY我使用someId,你應該指定那裏給出你的當前順序的字段,這是你的代碼不清楚。該訂單將定義共享policy_Id中的哪一個記錄將具有Count_policy = 1