gpt4 book ai didi

mysql - 将交叉表查询从 ms-access 转换为 mysql

转载 作者:行者123 更新时间:2023-11-28 23:53:19 26 4
gpt4 key购买 nike

我使用ms-Access生成查询,想在MYSQL中使用,但是MYSQL不支持某些ms-Access函数:

我想转换为 MYSQL 的 ms-Access 查询是:

 TRANSFORM Count(s1.s1_ID) AS Comps1_ID
SELECT s1.s1_ID, s1.Name
FROM s1 INNER JOIN eq ON s1.s1_ID = eq.s1_ID
GROUP BY s1.s1_ID, s1.Name
PIVOT eq.Type;

这是我的 table :

tables

有数据:

enter image description here

这是我的输出:

enter image description here

最佳答案

这是你需要在mysql中使用动态sql的方式

set @sql = null;
select
group_concat(distinct
concat(
'sum(case when eq.type = ''',
eq.type,
''' then 1 else 0 end) AS ',
concat('`',eq.type,'`')
)
) into @sql
from eq ;

set @sql = concat('select s1.s1_id, s1.name, ', @sql, ' from s1
join eq on eq.s1_id = s1.s1_id
group by s1.s1_id
');

prepare stmt from @sql;
execute stmt;
deallocate prepare stmt;

Demo

关于mysql - 将交叉表查询从 ms-access 转换为 mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32222783/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com