我有这个视图/展览,列出了发送日期,客户名称,客户位置,拒绝类型,IDClientPosition总数和IDRefusal总数的记录。我使用它来检查每个日期发送,接受,拒绝的索赔数量以及每个客户为何拒绝它们。 (我有用于ClientPosition,拒绝和客户的相关表格)
DtSent | IDClient | IDClientPosition | TOTAL Position | IDRefusal | TOTAL Refusal
---------------------------------------------------------------------------------------------
2020-01-10 1 1 40 NULL 0
2020-01-10 1 1 3 7 3
2020-01-10 1 2 1 NULL 0
2020-02-10 2 2 27 1 27
2020-02-10 2 2 13 2 13
到目前为止,查询显示了以上值:
SELECT TOP (100) PERCENT dbo.LBA.DtSent, dbo.Claims.IDClient, dbo.LBA.IDClientPosition,
COUNT(dbo.LBA.IDClientPosition) AS [TOTAL Position], dbo.LBA.IDRefusal,
COUNT(dbo.LBA.IDRefusal) AS [TOTAL Refusal]
FROM dbo.LBA INNER JOIN
dbo.ClientPositionLBA ON dbo.LBA.IDClientPosition =
dbo.ClientPositionLBA.IDClientPositLBA LEFT OUTER JOIN
dbo.RefusalLBA ON dbo.LBA.IDRefusal = dbo.RefusalLBA.IDRefusal LEFT OUTER JOIN
dbo.Claims LEFT OUTER JOIN
dbo.Clients ON dbo.Claims.IDClient = dbo.Clients.IDClients ON
dbo.LBA.ClaimID = dbo.Claims.ClaimID
GROUP BY dbo.LBA.IDClientPosition, dbo.Claims.IDClient, dbo.LBA.IDRefusal, dbo.LBA.DtSent
我想根据TOTAL Position和TOTAL Refusal的值添加2列以百分比表示。
有了这个,除了我已经拥有的总价值(计数)外,我还可以知道每个客户在那个日期接受,拒绝的索赔数量的百分比以及合理性(IDRefusal)。总结起来,就像将这些总价值转换为百分比一样。
每个月总共20个客户中,每个客户应该有大约100条记录,因此必须考虑性能。我尝试了网上发现的零散东西,但无济于事。
答案 0 :(得分:0)
除以总数:
COUNT(dbo.LBA.IDClientPosition) * 1.0 / COUNT(*),
COUNT(dbo.LBA.IDRefusal) * 1.0 / COUNT(*)
* 1.0
是因为某些数据库进行整数除法。 * 1.0
产生一个带小数的数字,因此计算更加精确。