Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将mySQL Select上特定键的实际值与上述行值相加_Mysql_Sql - Fatal编程技术网

如何将mySQL Select上特定键的实际值与上述行值相加

如何将mySQL Select上特定键的实际值与上述行值相加,mysql,sql,Mysql,Sql,用这里的一个例子,我只是提出了一个解决方案的一部分。现在我可以将这些值与上面一行的值求和,但在这种情况下,我只需要对同一个seu_NOME列的值求和 是SQLFIDLE的一个示例: 这是一个平衡,不是下面的总数 | SE_NOME | PNT |BALANCE| |---------|-----|-------| | ARP | 100 | 100 | | ARP | 500 | 600 | | DEE | 200 | 200 | | DEE | 20

用这里的一个例子,我只是提出了一个解决方案的一部分。现在我可以将这些值与上面一行的值求和,但在这种情况下,我只需要对同一个seu_NOME列的值求和

是SQLFIDLE的一个示例:

这是一个平衡,不是下面的总数

| SE_NOME | PNT |BALANCE|
|---------|-----|-------|
|     ARP | 100 |   100 |
|     ARP | 500 |   600 |
|     DEE | 200 |   200 |
|     DEE | 200 |   400 |
|     DEE | 200 |   800 |
|     DFF | 300 |   300 |
|     HGG | 400 |   400 |
|     HGG | 400 |   800 |
|     HGG | 400 |  1200 |

我猜你是在问如何用相同的seu_NOME值求和行。然后你可以做如下事情:

SELECT SUM(PNT) AS TOTAL FROM energia where SE_NOME = 'DEE'
select
    PreAgg.SE_NOME,
    PreAgg.PNT,
    CASE 
        WHEN @PrevNome<>PreAgg.SE_NOME THEN @PrevBal := PreAgg.PNT 
        ELSE @PrevBal := @PrevBal + PreAgg.PNT 
    END as Total,
    @PrevNome := PreAgg.SE_NOME as Nome
from 
  ( select
          eg.SE_NOME,
          eg.PNT
       from
          energia as eg
       order by
          eg.SE_NOME ) as PreAgg,
  ( select @PrevBal := 0.00 ) as SqlVars1,
  ( select @PrevNome := '' ) as SqlVars2

或者任何你想要使用的SE_NOME值。

我想你需要这样的东西:

SELECT SUM(PNT) AS TOTAL FROM energia where SE_NOME = 'DEE'
select
    PreAgg.SE_NOME,
    PreAgg.PNT,
    CASE 
        WHEN @PrevNome<>PreAgg.SE_NOME THEN @PrevBal := PreAgg.PNT 
        ELSE @PrevBal := @PrevBal + PreAgg.PNT 
    END as Total,
    @PrevNome := PreAgg.SE_NOME as Nome
from 
  ( select
          eg.SE_NOME,
          eg.PNT
       from
          energia as eg
       order by
          eg.SE_NOME ) as PreAgg,
  ( select @PrevBal := 0.00 ) as SqlVars1,
  ( select @PrevNome := '' ) as SqlVars2

你能解释一下,你的预期产出是什么吗?rtruszk先生刚刚给出了一个很好的答案。谢谢。我需要的正是小提琴上的那一点,它是实际价值加上前一点的余额。如编辑的问题所述。