2011-12-03 28 views
2

私の問題の簡素化。結果を別のテーブルの特定の値で乗算するにはどうすればよいですか?

サプライ:

  • supplyName:VARCHAR(20)、オフィスサプライの名前だけ、私はこれらのテーブルを持っていると言います。ペンに言う。
  • quantityPerBox:INT、ボックスに入っている電源の番号。

ボックス:

  • supplyName:VARCHAR(20)、電源の名前は、供給テーブルを参照します。
  • numBoxes:INT、電源のボックス数。

基本的に私がやりたいたいです。これらの表から

SELECT supplyName, numberOfSupply GROUP BY supplyName 

。しかし、私はnumberOfSupplyをquantityPerBox * numBoxesにします。

これはクエリとして実行できますか?または、私はいくつかの言語(例えば、PHP)でプログラムのSupplyテーブルから数量を格納し、そこで計算を行う必要がありますか? (または、たとえ可能であっても、クエリの一部として計算を実行しても実際にメリットはありませんか?)

ありがとうございます。それは感謝しています。

答えて

1

これは確かに個別にその値を格納すること、または別の言語を使用せずに、クエリで行うことができます

SELECT s.supplyName, s.quantityPerBox * b.numBoxes AS NumberOfSupply 
FROM Supply AS s 
INNER JOIN Boxes AS b ON s.supplyName = b.supplyName 

あなたはおそらくあなたがに整数値を持っているものの、両方のテーブルにSupplyIdを追加しますJOIN on:JOINVARCHARフィールドに入力するより効率的です。もう1つのメリットは、項目のsupplyNameを変更したければ、テーブル内の値ではなくIDでテーブルを参照している場合に、その変更を行う際に外部キーの問題を心配する必要がないということです。

+0

ああ、わかりました。いつものように、私はそれを考え直していました。正しい方向に私を指摘してくれてありがとう。私はそれが働いている。 – Tristan

+0

なぜ 'GROUP BY'ですか? –

+0

@ypercubeそこにはいけない、私は私の答えを更新しました。 –

関連する問題