我想创建一个动态的camamebrt,在其中我将使用sql代码来获取百分比。我有一张 table ,其中有:
Montant | libelle | Bureau
| 20 | A1 | B1 |
| 30 | A2 | B2 |
| 70 | A1 | B2 |
| 80 | A2 | B1 |
<小时/>
在我的卡门贝尔奶酪中,我有一个过滤器,我可以从中选择“Bureau”列的值:
因此,当我选择 B1
值时,我会得到一个带有以下内容的卡门:
对于局 1:20% A1 和 80% A2
当我选择“所有局”来获取所有局的统计数据时,我得到:
对于所有局:50% A1 和 50% a2。
我正在使用此查询:
select (sum(MONTANT) / (select sum(MONTANT) from table1))
from table1
where id_bureau= "the value of filtre"
group by libelle;
当我从过滤器中选择所有局时,这是有效的,但是当我只想显示一个“局”的百分比时,我得到了错误的值。
最佳答案
您应该只对匹配值求和。 Bureau = 'B1' 如果为真则为 1,如果为假则为 0。
select libelle, sum(montant * (Bureau = 'B1')) / sum(Bureau)
from table1
group by libelle
给出每一个诽谤的部分内容。
这就是你想要的吗?
关于mysql - 动态卡芒贝尔奶酪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32657460/