不好意思,之前描述不准确,现更正下:
数据集如上,想要结果为:每个RQ对应的WERKS 列都有:2021 2022 2023
想自动扩展(新增)行 对应JE 新增出来的赋值0
比如:
2023-05-08 2021 0
2023-05-08 2022 106.57
2023-05-08 2023 0
请问下sql如何编写
不好意思,之前描述不准确,现更正下:
数据集如上,想要结果为:每个RQ对应的WERKS 列都有:2021 2022 2023
想自动扩展(新增)行 对应JE 新增出来的赋值0
比如:
2023-05-08 2021 0
2023-05-08 2022 106.57
2023-05-08 2023 0
请问下sql如何编写
兄嘚, 列的大小是在表设计时指定的,因此如果要扩展列,需要修改表的结构。
试试
查看表的结构,确定需要扩展的列名称和类型:
DESC table_name;
然后 执行 ALTER TABLE 命令,将列的大小扩展到需要的大小。例如,如果需要扩展 varchar 列的大小,可以使用以下命令:
ALTER TABLE table_name MODIFY column_name VARCHAR(255);
这将把列的大小修改为 255,可以根据实际需要进行修改。
不懂的继续问我
SELECT a.RQ, a.years AS WERKS
, IF(a.WERKS = a.years, a.JE,0) AS JE
FROM (
SELECT r.RQ, r.WERKS, r.JE, '2021' AS years
FROM r
UNION ALL
SELECT r.RQ, r.WERKS, r.JE, '2022' AS years
FROM r
UNION ALL
SELECT r.RQ, r.WERKS, r.JE, '2023' AS years
FROM r
) a
你把2021,2022,2023做一个临时表,然后和RQ数据关联,再用RQ,WERKS,联合主键关联JE,空数据用case处理一下
SELECT RQ,WERKS
FROM RQ_table
CROSS JOIN (SELECT 2021 AS WERKS UNION SELECT 2022 UNION SELECT 2023) AS temp
6 回答5.1k 阅读✓ 已解决
2 回答7.5k 阅读✓ 已解决
3 回答1.7k 阅读✓ 已解决
1 回答5.3k 阅读✓ 已解决
1 回答5k 阅读✓ 已解决
4 回答2.4k 阅读
2 回答1.2k 阅读✓ 已解决