在一列中拆分数据并将它们转换为 MS Access 中的列 headers
Split data in one column and convert them into column headers in MS Access
我正在尝试在新的 table 上将一列数据转换为 headers。 This question 有一个很好的答案,但 SQL 在 Access 中不起作用,我在 SELECT 语句的第一部分遇到语法错误。这是带有示例名称的代码:
comp_name,
nvl(data1,0)data1,
nvl(data2,0)data2,
nvl(data3,0)data3,
nvl(data4,0)data4
from
main_table
PIVOT
(
sum(amount) for (code) in (
'data1' as data1,
'data2' as data2,
'data3' as data3,
'data4' as data4
)
)
此代码应该有效还是与 Access 不兼容?我如何在 Access 中实现这样的目标?
改为使用条件聚合:
select comp_name,
sum(iif(code = 'data1', amount, 0)) as data1,
sum(iif(code = 'data2', amount, 0)) as data2,
sum(iif(code = 'data3', amount, 0)) as data3,
sum(iif(code = 'data4', amount, 0)) as data4
from main_table
group by comp_name;
我正在尝试在新的 table 上将一列数据转换为 headers。 This question 有一个很好的答案,但 SQL 在 Access 中不起作用,我在 SELECT 语句的第一部分遇到语法错误。这是带有示例名称的代码:
comp_name,
nvl(data1,0)data1,
nvl(data2,0)data2,
nvl(data3,0)data3,
nvl(data4,0)data4
from
main_table
PIVOT
(
sum(amount) for (code) in (
'data1' as data1,
'data2' as data2,
'data3' as data3,
'data4' as data4
)
)
此代码应该有效还是与 Access 不兼容?我如何在 Access 中实现这样的目标?
改为使用条件聚合:
select comp_name,
sum(iif(code = 'data1', amount, 0)) as data1,
sum(iif(code = 'data2', amount, 0)) as data2,
sum(iif(code = 'data3', amount, 0)) as data3,
sum(iif(code = 'data4', amount, 0)) as data4
from main_table
group by comp_name;