2011-10-19 7 views
0

月ごとにクエリをグループ化しているため、毎月の記録を取得できますが、これを行う方法を理解する必要があります。 JOINステートメント。可能であれば、1つのクエリで各子テーブルの数量または合計を取得しようとしています。私はちょうどPHPでループすることができますが、私はmysqlで行う方法を見つけることを試みています。複数のJOINで月ごとにグループ化されたクエリ

ここで私は、これがうまくいく方法はありません知っている、との論理はばかげている、これは私のデータベースの正確な構造が、物事がリンクされている方法の単なるアイデアではありませんサンプル

SELECT SUM(purchase_quantity),SUM(sales_quantity) 
FROM products p 
INNER JOIN purchase_order_lines sl ON pl.product_id = p.id 
INNER JOIN purchase_orders po ON pl.purchase_order_id = po.id 
INNER JOIN sales_order_lines sl ON sl.product_id = p.id 
INNER JOIN sales_orders so ON sl.sales_order_id = so.id 
GROUP BY YEAR(so.posted & po.posted), MONTH(so.posted & po.posted) 

です私がやろうとしていること。私はそれがSELECTステートメントのサブクエリで行わなければならないと思っていますが、私はまだ何も思い付いていません。私はそれについて考え続けるつもりですが、もし誰かがアイデアを持っているなら、それはすばらしいでしょう。

答えて

0

結果がグループ化されているため、カウントは1になります。なぜ結果を数える別のステートメントとそれをグループ化する別のステートメントを実行してみてください。

+0

正確に何を言っているのかわかりません。私はできるだけ1つの選択肢でそれを行う方法を見つけることを試みています。私は私のPHPコードの月の範囲をループし、範囲内の毎月の選択を行い、結果を返し、それらから配列を構築する場合、動作する方法があります。これは現在のところ私が持っている唯一の解決策ですが、できるだけクエリに重くないより効率的なものを期待しています。 – Kyro

関連する問題