3

我对 PHP/MySQL 没有太多经验。我有一个包含 3 个字段的表格:idparticularamount,如下所示。

id   particular   amount
1    Fees         5000
2    Fees         3000
3    Bill         9000
4    Fees         4000
5    Bill         3000
6    Expense      2000
7    Fees         1000

我想按组显示数据以及每个组的总和,如下所示:

particular   amount
Fees         5000
Fees         3000
Fees         4000
Fees         1000
**Total        13000**
Bill         9000
Bill         3000
**Total        12000**
Expense      2000
**Total        2000**

我尝试这个查询SELECT SUM(amount), particular FROM sale_expense GROUP BY particular并添加了所有值,但它没有显示在组中,因为我需要显示数据

4

4 回答 4

3
SELECT particular, id, sum(amount) amount
FROM TableName
GROUP BY particular, id WITH ROLLUP

小提琴

于 2012-12-05T17:19:27.800 回答
2

试试这个 sql:

SELECT 特别,SUM(amount) AS total FROM tablename GROUP BY 特别

这应该给你每组的总数。
更新:试试这个

$sql = "SELECT specific, SUM(amount) AS total FROM tablename GROUP BY specific";
$result = mysql_query($sql);
而($row = mysql_fetch_array($result)){
    $sql2 = "SELECT * FROM tablename WHERE specific = '".$row['particular']."'";
    $result2 = mysql_query($sql2);
    而($row2 = mysql_fetch_array($result2)){
        回声 $row2['特别']。" ".$row['数量'];
        回声“\n”;
    }
    echo " Totol: ".$row['total']." ";
}

于 2012-12-05T17:03:33.743 回答
0

尝试这个:

( SELECT 
    particular, 
    amount  
  FROM sale_expense )
UNION
( SELECT 
    CONCAT(particular," - total") AS particular, 
    SUM(amount) AS amount 
  FROM sale_expense
  GROUP BY particular )
ORDER BY particular ASC
于 2012-12-05T17:14:50.427 回答
0

您可以将查询合并在一起:

select particular, amount
from ((select id, particular, amount
       from sales_expense se
      ) union all
      (select 99999 as id, concat('Total: ', particular), sum(amount) as amount
       from sales_expense se
       group by particular
      )
     ) t
group by particular
order by id
于 2012-12-05T17:13:02.640 回答