【发布时间】:2020-02-29 18:19:28
【问题描述】:
上下文
我有这个视图/展览,其中列出了发送日期、客户姓名、客户职位、拒绝类型、IDClientPosition 总数和 IDRefusal 总数的记录。我用它来检查每个日期发送的索赔数量、被接受、拒绝的数量以及每个客户拒绝的原因。 (我有用于ClientPosition、Refusal 和Client 的相关表)
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)。总而言之,这就像将这些总值转换为百分比。
每个客户每个月应该有大约 100 条记录,总共 20 个客户,所以它必须考虑性能。我尝试了一些我在网上找到的零散的东西,但没有用。
【问题讨论】:
-
(1) 显示您想要的结果。 (2) 标记您正在使用的数据库。 (3) 学会使用表别名:查询更容易写和读。
-
(1) 你的意思是添加一列并正好显示一个百分比我想看一个百分比? (2) 对不起,不明白 (3) 我确实使用了别名,但是在我做测试的时候,忘记了。应该认为这会有所帮助。对不起
标签: sql group-by percentage