先联合查询再交叉查询即可。
一、联合查询
select 期间,店号,"销售额" as 指标,销售额 as val from tbname
union all
select 期间,店号,"销售量" as 指标,销售量 as val from tbname
union all
select 期间,店号,"税费" as 指标,税费 as val from tbname
二、可以有以下两种处理
1、将联合查询单独编制并命名为:联合查询,以此联合查询为基础写交叉查询:
TRANSFORM Sum(a.val) AS 数量
SELECT a.店号,a.指标
FROM 联合查询 as a
GROUP BY a.店号,a.指标
PIVOT a.期间;
2、可不单独编写联合查询,而是在from子句中用子查询做源,可以写为:
TRANSFORM Sum(a.val) AS 数量
SELECT a.店号,a.指标
FROM (
select 期间,店号,"销售额" as 指标,销售额 as val from tbname
union all
select 期间,店号,"销售量" as 指标,销售量 as val from tbname
union all
select 期间,店号,"税费" as 指标,税费 as val from tbname
) as a
GROUP BY a.店号,a.指标
PIVOT a.期间;
三、在字段比较多的时候,还可以用ADO写自定义函数返回一个类似的数据集供窗体或报表使用。