-1

こんにちは私は私のデータベースに2つのテーブルを持っています1.収入2.結果収入テーブルにはID、日付、価格もあります結果テーブルもまったく同じです今日の価格の合計をそのように示しています

mysql_select_db($database_conn, $conn);
$query_gelen_gun = sprintf ("SELECT SUM(tutar) FROM cepbank WHERE tarih >= DATE(NOW())");
$gelen_gun = mysql_query($query_gelen_gun, $conn) or die(mysql_error());
$row_gelen_gun = mysql_fetch_assoc($gelen_gun);
$totalRows_gelen_gun = mysql_num_rows($gelen_gun);

mysql_select_db($database_conn, $conn);
$query_giden_gun = sprintf ("SELECT SUM(tutar) FROM cepbank_out WHERE tarih >= DATE(NOW())");
$giden_gun = mysql_query($query_giden_gun, $conn) or die(mysql_error());
$row_giden_gun = mysql_fetch_assoc($giden_gun);
$totalRows_giden_gun = mysql_num_rows($giden_gun);

。。。

<p>Total Income for Today:<?php echo $row_gelen_gun['SUM(tutar)']; ?></p>
<p>Total Outcome for Today:<?php echo $row_giden_gun['SUM(tutar)']; ?></p>

たとえば、この2つの結果のバランスをどのように表示できるか$row_gelen_gun['SUM(tutar)']=100と$row_giden_gun['SUM(tutar)']=50

バランスは100-50=50である必要がありますか?

注:クエリのPrice = tutar

4

2 に答える 2

0

union allまたはを使用しますcross joinunion all2行で結果を取得するために使用します。cross join同じ行の2つの列で結果を取得するために使用します。

cross join:の例を次に示します。

select sumcep, sumcepout
from (SELECT SUM(tutar) as sumcep
      FROM cepbank
      WHERE tarih >= DATE(NOW())
     ) t cross join
     (SELECT SUM(tutar) as sumcepout
      FROM cepbank_out
      WHERE tarih >= DATE(NOW())
     ) t2
于 2013-03-25T14:15:14.060 に答える
0

Gordonのクエリを使用してこれを行うことができます。また、MySQLで残高を計算する場合は、最初の行を次のように変更します。

select sumcep, sumcepout, sumcep-sumcepout as balance

現在のアプローチ(2つの別々のクエリ)を維持したい場合は、次の推奨事項があります。

まず、両方の名前SUM(tutar)を付けると混乱する可能性があるため、列のエイリアスを作成します。また、関数が関係しているときに生成された列名を信頼することにいつも不安を感じていました。したがって、これらの代わりに:

SELECT SUM(tutar) FROM cepbank WHERE tarih >= DATE(NOW())
SELECT SUM(tutar) FROM cepbank_out WHERE tarih >= DATE(NOW())

...これらを試してください:

SELECT SUM(tutar) AS Income FROM cepbank WHERE tarih >= DATE(NOW())
SELECT SUM(tutar) AS Outcome FROM cepbank_out WHERE tarih >= DATE(NOW())

そしてバランスのためにあなたはこれをすることができます:

$balance = $row_gelen_gun['Income'] - $row_giden_gun['Outcome'];

PHPはあなたのために数字にキャスト/変換します。

CURRENT_DATEところで、の代わりに使用できますがDATE(NOW())、それはマイナーです。クエリが読みやすくなると思われる場合は変更してください-呼び出し:)

PDOしかし、最も重要なことは、これが学校の課題や学習演習以外のものである場合は、またはを使用してくださいMySQLi。学習演習であっても、そのまま動作させてからPDOまたはMySQLiに変換してみてください。「現実の世界」で使用する必要があります。

于 2013-03-25T14:25:37.653 に答える