2009-06-06 3 views
1

私のウェブサイトを通って稼働している売り上げをどのように表示するのか少し問題があります。 1つのテーブルから1つの出力を使ってこれを行う方法は問題ありませんが、残念ながら私のウェブサイトでは、合計売上の結果がデータベースの2つのテーブルに分散されています。私のウェブサイトに合計を表示していますか?

私は通常、SQLでユニオンクエリを使用して手動で(私はそれをチェックしたいと思うとき)、総売上高を取得します。私は何千ものカンマでフォーマットされた単一の数字として私のウェブサイト上に合計人物を表示する方法を考案しようとしています。

これまでは、各テーブルの合計を別の数字として表示するコードを作成していました。 2つの別々の図形は別として、これは完璧です。私がする必要があるのは、2行の出力を1つのFigureに結合することだけです。私が現在持っているコードは以下の通りです:

$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

MySQL、Oracle、またはSQL Serverを使用していますか? – Kane

+0

cletusからのこの質問に対する最初の答え(PHPコードの変種を使用)は完全に機能しました。残念ながら私は彼の答えに投票を追加する評判の正しい量を持っていないが、これは私の問題を解決した答えです。すぐ返事ありがとう - バニー – Bunny

答えて

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>'; 

代わりに、それは1つのクエリで行うことができます

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
SELECT sum(price) AS total_price FROM 
(SELECT price FROM table_A 
UNION 
SELECT price FROM table_B 
) 
0

あなたが残した唯一のことは、これらの値の合計をとるようです。

$sum = 0; 
while ($row=mysql_fetch_array($res)) { 
    $sum += $row["total_price"] 
}; 
echo '<h3>'.number_format($sum, 0).'</h3>'; 
0

これは、両方のテーブルの値の合計として1桁を返します。

SELECT 
    (SELECT sum(price) AS total_price FROM `table_A`) + 
     (SELECT sum(price) AS total_price FROM `table_B`); 

関連する問題