2017-01-13 115 views
1

我需要总和2个总和号码的帮助。 那么我有表显示用户总数。 在表的结尾,我需要做出显示所有数字之和的行。总计2个总和php

表:

Table

所以对蓝色行,我需要的所有数字高达总和。 我的代码:

$groupQuery = 
    "SELECT r.broj_rac AS racun, COUNT(stavka) AS stavka, d.naziv1 AS dobavljac, SUM(iznos_osnovica) AS osnovica, SUM(iznos_porez) AS porez, SUM(moze_se_odbiti) AS odbiti, SUM(nemoze_se_odbiti) AS neodbiti, SUM(neoporezivo) AS neoporezivo, SUM(ukupno) AS ukupno1, r.sveukupno AS sveukupno 
    FROM racuni AS r 
    LEFT JOIN dobavljaci AS d 
    ON d.sifra = r.dobavljac 
    WHERE partner = '".$_SESSION['sifra_partnera']."' 
    GROUP by broj_rac"; 

是否有可能使类似SUM(SUM(ukupno AS ukupno1) AS ukupno2)

+0

为什么不处理PHP中的各种最终款项的计算? – RamRaider

+0

@RamRaider我不知道,我应该改变它为PHP? – proofzy

+1

是的,因为如果你正在显示你已经处理这些数据的行,所以在代码中的总和会比所有这些大规模的查询少得多。 SQL引擎不是一个计算器:) –

回答

2

貌似要添加一个合计行,而不是像其他答案所暗示的那样对列进行总计,所以如果您只想包含行whi,那么应该这样做CH总数的osnovicaporez值:

$groupQuery = 
    SELECT r.broj_rac AS racun, 
      COUNT(stavka) AS stavka, 
      d.naziv1 AS dobavljac, 
      SUM(iznos_osnovica) AS osnovica, 
      SUM(iznos_porez) AS porez, 
      SUM(moze_se_odbiti) AS odbiti, 
      SUM(nemoze_se_odbiti) AS neodbiti, 
      SUM(neoporezivo) AS neoporezivo, 
      SUM(ukupno) AS ukupno1, 
      r.sveukupno AS sveukupno 
    FROM racuni AS r 
    LEFT JOIN dobavljaci AS d 
    ON d.sifra = r.dobavljac 
    WHERE partner = '".$_SESSION['sifra_partnera']."' 
    GROUP by broj_rac 

    UNION 

    SELECT 'TOTAL' AS racun, 
      '' AS stavka, 
      '' AS dobavljac, 
      SUM(iznos_osnovica) AS osnovica, 
      SUM(iznos_porez) AS porez, 
      '' AS odbiti, 
      '' AS neodbiti, 
      '' AS neoporezivo, 
      '' AS ukupno1, 
      '' AS sveukupno 
    FROM racuni AS r 
    LEFT JOIN dobavljaci AS d 
    ON d.sifra = r.dobavljac 
    WHERE partner = '".$_SESSION['sifra_partnera']."'" 

UNION下半年,你也可以在你希望的总排在总结其他领域进行聚合函数,例如SUM(ukupno) AS ukupno1AVG(ukupno) AS ukupno1如果你想分别为ukupno的总和或平均值。

0

你可以做

SELECT 
    Val1, 
    Val2, 
    Val3, 
    (Val1 + Val2 + Val3) as 'Total' 
FROM MyTable 

,或者如果你只是想要一个行:

SELECT 
    SUM(Val1) as 'Val1', 
    SUM(Val2) as 'Val2', 
    SUM(Val3) as 'Val3', 
    (SUM(Val1) + SUM(Val2) + SUM(Val3)) as 'Total' 
FROM MyTable 
+0

不工作,我得到同样的一个 – proofzy

0

尝试以下查询

SELECT 
    (
     SUM(COL_1) 
     + SUM(COL_2) 
     + SUM(COL_3) 
    ) as `Total` 
FROM TABLE_NAME 
1

尝试以下查询

SELECT 
(
    SUM(COL_1) 
    + SUM(COL_2) 
    + SUM(COL_3) 
) as `Total` 
FROM TABLE_NAME