我想在 MySQL 中生成一个交叉表查询。我用过group_concat
,但它不起作用。我发出以下查询来生成年份列表:
set @v1 = (SELECT GROUP_CONCAT(DISTINCT
CONCAT('\\nsum(CASE WHEN myear=\"', myear ,'\"
THEN amount ELSE NULL END) AS\"', myear,'\"')) AS column_list
FROM mdata
where myear > 1972 and myear < 1974);
select myear, amount, @v1 from mdata;
它生成了@v1
包含二进制字段的年份列表。我想在下一个查询中使用它来进行交叉表查询。
我可以使用 PHP 运行第一个查询并将值存储在一个变量中并在下一个查询中使用它,但是如何在 MySQL 中完成呢?