2

私は3つのテーブル、inventory_location、item、item_stockを持っています

在庫の場所:

inv_loc_id (PK)
inv_loc_desc

アイテム:

item_id (PK)
code_no
item_desc
inv_cat_id

item_stock :

item_stock_id (PK)
item_id
inv_loc_id
quantity

次のようなレポートを表示したい:

コード 説明 Loc1 Loc2 合計

1 記述 1 5 3 8

inventory_location にはデータがあります: (Loc1,Loc2,Loc3,Loc4,Loc5)& は別のレコードに追加できます。

私の問題は、場所がまだ入っていない場合、item_stockつまりアイテムがまだ保存されていない場合、次のように表示されることです。

コード 説明 Loc1 Loc2 null null 合計

1 説明 1 5 3 0 0 8

私が必要としているのは、まだ にない場合でも、すべての場所を表示することですitem_stock

これが私の質問です。うまくいけば、私を修正していただけます。

SELECT 

   il.`inv_loc_id`     AS inv_loc_id, 
   il.`inv_loc_desc`   AS inv_loc_desc, 
   i.`item_id`         AS item_id, 
   i.`nrc_no`          AS nrc_no, 
   i.`code_no`         AS code_no, 
   i.`item_desc`       AS item_desc, 
   i.`unit_id`         AS unit_id, 
   iss.`item_stock_id` AS item_stock_id, 
   iss.`inv_loc_id`    AS inv_loc_id, 
   iss.`quantity`      AS quantity, 
   i.`inv_cat_id`      AS inv_cat_id 

FROM   `item` i 

       LEFT JOIN `item_stock` iss 
              ON iss.`item_id` = i.`item_id` 
       LEFT JOIN `inventory_location` AS il 
              ON il.`inv_loc_id` = iss.`inv_loc_id` 

WHERE  i.inv_cat_id = 1 

GROUP  BY iss.inv_loc_id, 
          i.item_id 

ORDER  BY iss.item_stock_id DESC 
4

1 に答える 1

1
FROM inventory_location il
 LEFT JOIN item_stock iss ON iss.inv_loc_id = il.inv_loc_id
 LEFT JOIN item i ON iss.item_id = i.item_id

FROM 句を変更して、inventory_location で開始するようにします。

于 2013-11-07T13:36:50.633 に答える