【问题标题】:Dynamic Camembert动态卡门培尔干酪
【发布时间】:2015-09-18 17:04:50
【问题描述】:

我想创建一个动态的camemebrt,我将在其中使用sql 代码来获取百分比。我有一张桌子:

  Montant  |  libelle | Bureau  
|   20     |    A1    |   B1    |
|   30     |    A2    |   B2    |
|   70     |    A1    |   B2    |
|   80     |    A2    |   B1    |

在我的卡门培尔干酪中,我有一个过滤器,我将从中选择“局”列的值:

所以当我选择 B1 值时,我会得到一个 camember:
局 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;

当我从过滤器中选择所有局时,这是可行的,但是当我想只显示一个“局”的百分比时,我得到了错误的值。

【问题讨论】:

    标签: mysql sql oracle oracle11g oracle10g


    【解决方案1】:

    您应该只对匹配值求和。 Bureau = 'B1' 如果为真则为 1,如果为假则为 0。

     select libelle, sum(montant * (Bureau = 'B1')) / sum(Bureau)
     from table1
     group by libelle
    

    给每个诽谤的部分。

    这是你想要的吗?

    【讨论】:

      猜你喜欢
      • 2020-11-06
      • 2011-05-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-21
      • 1970-01-01
      相关资源
      最近更新 更多