Mysql JasperReports:显示空列的交叉表

Mysql JasperReports:显示空列的交叉表,mysql,jasper-reports,crosstab,Mysql,Jasper Reports,Crosstab,我有三张桌子,库存位置,物品,物品库存 库存位置: inv_loc_id (PK) inv_loc_desc 项目: item_id (PK) code_no item_desc inv_cat_id item_stock_id (PK) item_id inv_loc_id quantity 项目库存: item_id (PK) code_no item_desc inv_cat_id item_stock_id (PK) item_id inv_loc_id quantity 我想

我有三张桌子,库存位置,物品,物品库存

库存位置

inv_loc_id (PK)
inv_loc_desc
项目

item_id (PK)
code_no
item_desc
inv_cat_id
item_stock_id (PK)
item_id
inv_loc_id
quantity
项目库存

item_id (PK)
code_no
item_desc
inv_cat_id
item_stock_id (PK)
item_id
inv_loc_id
quantity
我想显示这样的报告:

代码描述OC1LOC2总计

1Desc1538

库存位置有数据:
(Loc1、Loc2、Loc3、Loc4、Loc5)
&可以与其他记录一起添加

我的问题是,如果某个位置尚未在
项目库存中
——这意味着尚未在其中存储任何项目,它将显示如下所示:

代码描述OC1LOC2NULLNULLTOTALL

1Desc153008

我需要的是,显示所有位置,即使它们尚未在
商品库存中

这是我的问题,希望你能纠正我

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 
更改FROM子句,以便从库存位置开始。

您应该发布jrxml文件