Codeigniter 数据表中的交叉表生成错误

Cross-Tab generating error in Codeigniter Datatables

提问人:mcode 提问时间:9/28/2023 更新时间:9/28/2023 访问量:18

问:

我有三个表格,如下所示,用于记录项目问题。

表、项目

+---------+-----------+
| Item_id | item_name |
+---------+-----------+
|       1 | A4        |
|       2 | Ballpoint |
|       3 | Pencil    |
|       4 | Halfsheet |
+---------+-----------+

表,store_update_stock

+-----------------+------------+--------+
| update_stock_id |    date    | status |
+-----------------+------------+--------+
|             100 | 2023-01-09 | issue  |
|             101 | 2023-02-09 | issue  |
|             102 | 2023-03-09 | issue  |
|             103 | 2023-04-09 | issue  |
|             104 | 2023-05-09 | issue  |
|             105 | 2023-06-09 | issue  |
+-----------------+------------+--------+

表,store_update_stock_details

+-------------------------+-----------------+------+-----+
| update_stock_details_id | update_stock_id | item | qty |
+-------------------------+-----------------+------+-----+
|                    1000 |             100 |    1 |   2 |
|                    1001 |             100 |    2 |   5 |
|                    1002 |             103 |    3 |   2 |
|                    1003 |             103 |    4 |   1 |
|                    1004 |             103 |    1 |   4 |
|                    1005 |             104 |    1 |   4 |
|                    1006 |             105 |    2 |  10 |
+-------------------------+-----------------+------+-----+

然后,我需要通过连接这三个表来生成一个交叉表,所需的输出将放在我的 Codeigniter 项目的 Datatables 中。所需的输出应如下所示:

所需输出

+-----------+------------+------------+------------+------------+
| item_name | 2023-01-09 | 2023-04-09 | 2023-05-09 | 2023-06-09 |
+-----------+------------+------------+------------+------------+
| A4        |          2 |          4 |          4 |         10 |
| Ballpoint |          5 |          0 |          0 |          0 |
| Pencil    |          0 |          2 |          0 |          0 |
| Halfsheet |          0 |          1 |          0 |          0 |
+-----------+------------+------------+------------+------------+

因此,我使用以下代码来生成所需的输出。

SELECT
  GROUP_CONCAT(DISTINCT
    CONCAT(
      'MAX(IF(`date` = "', `date`,'","store_update_stock_details.qty")) AS ', '"qty"', `date` , '"' )
  ) INTO @sql
FROM store_update_stock
left join store_update_stock_details on store_update_stock_details.update_stock_id=store_update_stock.update_stock_id;

SET @sql = CONCAT('SELECT  item_name, ', @sql, ' 
                  FROM    store_item
                  GROUP   BY item_name');  
SELECT @sql;

现状

代码没有出现任何错误。但结果只是空洞的。所以,无法获得预期的结果。

我无法捕获代码中的错误。谁能帮我?

MySQL CodeIgniter 数据表

评论


答: 暂无答案