1. 语句:
方法一,使用交叉查询法:
TRANSFORM Max(表1.数据) AS 数据之最大值
SELECT 表1.编号, 表1.工作类别, 表1.业务类别, 表1.展示分类
FROM 表1
GROUP BY 表1.编号, 表1.工作类别, 表1.业务类别, 表1.展示分类
ORDER BY 表1.编号, 表1.工作类别, 表1.业务类别, 表1.展示分类, 表1.标题
PIVOT 表1.标题;
但注意问题:分列出来的标题的顺序是按首字拼音顺序的,当然,你也可以把这个SQL句先建个实体的查询(因交叉查询是不能做为子查询的),然后再做个SQL来引用这个实体的查询,来设定标题字段的顺序
方法二,使用条件语句Left Join法
SELECT 查询_取唯一.*, 查询_任务名称.数据 AS 任务名称, 查询_负责人.数据 AS 负责人, 查询_完成日期.数据 AS 完成日期, 查询_是否完成.数据 AS 是否完成
FROM ((((SELECT Distinct 表1.编号, 表1.工作类别, 表1.业务类别, 表1.展示分类
FROM 表1) AS 查询_取唯一 LEFT JOIN (SELECT 表1.编号, 表1.数据
FROM 表1 Where 表1.标题='任务名称' ) AS 查询_任务名称 ON 查询_取唯一.编号 = 查询_任务名称.编号) LEFT JOIN (SELECT 表1.编号, 表1.数据
FROM 表1 Where 表1.标题='负责人' ) AS 查询_负责人 ON 查询_取唯一.编号 = 查询_负责人.编号) LEFT JOIN (SELECT 表1.编号, 表1.数据
FROM 表1 Where 表1.标题='完成日期' ) AS 查询_完成日期 ON 查询_取唯一.编号 = 查询_完成日期.编号) LEFT JOIN (SELECT 表1.编号, 表1.数据
FROM 表1 Where 表1.标题='是否完成' ) AS 查询_是否完成 ON 查询_取唯一.编号 = 查询_是否完成.编号
ORDER BY 查询_取唯一.编号;
2.语句,使用联合语句法:
Select 联合查询01.编号,联合查询01.工作类别, 联合查询01.业务类别, 联合查询01.展示分类,联合查询01.标题,联合查询01.数据 from
(SELECT 1 AS 序, 表2.编号, 表2.工作类别, 表2.业务类别, 表2.展示分类,'任务名称' as 标题,表2.任务名称 as 数据
FROM 表2
union all
SELECT 2 AS 序, 表2.编号, 表2.工作类别, 表2.业务类别, 表2.展示分类,'负责人' as 标题, 表2.负责人 as 数据
FROM 表2
union all
SELECT 3 AS 序, 表2.编号, 表2.工作类别, 表2.业务类别, 表2.展示分类,'是否完成' as 标题, 表2.是否完成 as 数据
FROM 表2
union all
SELECT 4 AS 序, 表2.编号, 表2.工作类别, 表2.业务类别, 表2.展示分类,'完成日期' as 标题, 表2.完成日期 as 数据
FROM 表2) as 联合查询01
order by 联合查询01.编号,联合查询01.序;
|