我一直在寻找,但无法得到正在寻找的结果。也许我没有设法说好,请原谅。
这是一个示例数据,我有这个政策表
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 :(得分: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
的{{1}}中,您应该在那里指定提供当前订单的字段,这在您的代码中并不明确。该订单将定义共享someId
的哪一条记录将具有policy_Id
。