2016-05-03 7 views
0


を動作していないテーブルの結合フィルタを私はいくつかのIDで接続された各テーブルには、親切に私はMYSQL -

SELECT 
tax_rates.name, 
IF(products.tax_method = 0, 'Inclusive', 'Exclusive') AS type, 
IF((SUM(purchases.grand_total) > 0),(SUM(purchases.grand_total)),(SUM(purchase_items .subtotal))) AS total_amount, 
IF((SUM(purchases.order_tax) > 0),(SUM(purchases.order_tax)),SUM(purchase_items .item_tax)) AS tax_amount 
FROM tax_rates 
LEFT JOIN purchases ON purchases.order_tax_id = tax_rates.id 
LEFT JOIN purchase_items ON purchase_items.tax_rate_id = tax_rates .id 
LEFT JOIN products ON products.id = purchase_items.product_id 
WHERE purchases.warehouse_id = 1 
GROUP BY tax_rates.id, products.tax_method 
ORDER BY tax_rates.name desc LIMIT 0, 10 

は、上記のクエリは、しかし、もしあれば、結果が返されませんでした取得していますどのように以下のクエリを参照してください4つのテーブルを持っていますpurchases.warehouse_id = 1を削除して結果を表示します。私はどこでミスをしているのか分かりません。親切に私を修正してください。私は特定の店舗や日付

出力

name  type  total_amount tax_amount 

VAT @20% Inclusive 11005.2000 1834.2000 
VAT @10% Inclusive 165.0000 15.0000 
No Tax  Exclusive 204771.4000  0.0000 
GST @6% Exclusive 7155.0000 405.0000 
GST @6% Inclusive 7155.0000 405.0000 

はありがとう

+0

'WHERE'を 'AND'に変更します。 – Strawberry

答えて

0

データ型で発注税や購入アイテム税 を取得しようとしていますこのことについてお伝え

申し訳ありませんか? purchases.warehouse_id = '1'?

0

左の結合テーブルのフィールドを使用しているときは、where句に条件を追加しないでください。あなたは左を追加しようと

LEFT JOIN purchases ON purchases.order_tax_id = tax_rates.id and purchases.warehouse_id = 1 

以下のような句と使用場所を削除句は、それはINNER JOINをになるだろうどこにテーブルのフィールドに参加します。したがって、データに応じて行が表示されないことがあります。