日期:2014-05-16  浏览次数:20909 次

请求援助 sql
id 编号 姓名 性别 班级 项目
27 4101 张帅 男 9-1 跳高
28 4101 张帅 男 9-1 跳远
29 4102 刘轩 男 9-1 100米
31 4102 刘轩 男 9-1 200米
32 4103 李永恒 男 9-1 400米
34 4103 李永恒 男 9-1 跳远

有这样一个表,要求得到下面的结果该怎样做?

班级     姓名   编号   项目1     项目2
也就是把两行合成一行。

------解决方案--------------------
假設表名為TEST

先創建一個Query,名為QueryOrderID

語句為
SELECT A.*, (Select Count(*) From TEST Where 编号 = A.编号 And id <= A.id) AS OrderID
FROM TEST AS A;


然後再創建一個Query,名為QueryResult
語句為

SELECT
班级, 姓名,编号,Max(IIF(OrderID = 1 , 项目 , ' ' )) As 项目1, Max(IIF(OrderID = 2 , 项目 , ' ' )) As 项目2
FROM QueryOrderID
Group By 班级, 姓名,编号

就可以得到你的結果