提问人:mcode 提问时间:9/28/2023 更新时间:9/28/2023 访问量:18
Codeigniter 数据表中的交叉表生成错误
Cross-Tab generating error in Codeigniter Datatables
问:
我有三个表格,如下所示,用于记录项目问题。
表、项目
+---------+-----------+
| 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;
现状
代码没有出现任何错误。但结果只是空洞的。所以,无法获得预期的结果。
我无法捕获代码中的错误。谁能帮我?
答: 暂无答案
评论