我在弄清楚如何显示已经通过我的网站的销售总额时遇到了一些麻烦。我可以通过一个表的单个输出来解决这个问题,但不幸的是,对于我的网站,总销售额的结果分布在数据库中的两个表中。
我通常使用SQL中的Union查询手动获取总销售额(每当我想检查它时)。我试图设计一种方法,在我的网站上显示总数字,作为一个数字格式化为数千的逗号。
到目前为止,我已设法创建一些代码,将每个表中的总数显示为单独的数字。除了2个独立的人物,这是完美的。我需要做的就是将2行输出连接成一个数字。我目前的代码如下:
$sql= "SELECT sum(price) AS total_price FROM `table_A`
UNION ALL
SELECT sum(price) AS total_price FROM `table_B`";
$res= mysql_query($sql);
if (mysql_num_rows($res)>0) {
while ($row=mysql_fetch_array($res)) {
echo '<h3>'.number_format($row["total_price"], 0).'</h3>';
};
};
echo mysql_error();
任何人都可以帮我解决这个问题吗?
答案 0 :(得分:1)
只需添加它们:
$sql = <<<END
SELECT sum(price) AS total_price FROM `table_A`
UNION ALL
SELECT sum(price) AS total_price FROM `table_B'
END;
$res = mysql_query($sql);
if (!$res) {
die('Error: ' . mysql_error() . ' in query ' . $sql);
}
$total = 0;
while ($row = mysql_fetch_array($res)) {
$total += $row[0];
}
$total = number_format($total, 0);
echo '<h3>Total Sales are $' . $total . '</h3>';
或者,可以在一个查询中完成:
SELECT SUM(total_price) FROM (
SELECT sum(price) AS total_price FROM `table_A`
UNION ALL
SELECT sum(price) AS total_price FROM `table_B'
)
就我个人而言,我只是在代码中添加它,但它们都有效。
答案 1 :(得分:1)
SELECT sum(price) AS total_price FROM
(SELECT price FROM table_A
UNION
SELECT price FROM table_B
)
答案 2 :(得分:0)
您似乎唯一要做的就是获取这些值的总和。
$sum = 0;
while ($row=mysql_fetch_array($res)) {
$sum += $row["total_price"]
};
echo '<h3>'.number_format($sum, 0).'</h3>';
答案 3 :(得分:0)
这将返回单个数字作为两个表的值的总和。
SELECT
(SELECT sum(price) AS total_price FROM `table_A`) +
(SELECT sum(price) AS total_price FROM `table_B`);
好吧,也许,你明白了。