我有一张桌子," Sort_age"在一个名为" Info"的文件中。
我现在所拥有的" Sort_age"如下:
year month code Category Field Info
2013 jan 3 student Name John
2013 jan 3 student Age 14
2013 feb 2 teacher Name Mika
2013 feb 2 teacher Age 25
但是,我希望我的输出是这样的:
year month code Category Name Age
2013 jan 3 student John 14
2013 feb 2 teacher Mika 25
我是否知道如何在microsoft ACCESS,SQL查询中进行此操作?
谢谢!
答案 0 :(得分:1)
试试这个: Demo here
MS SQL Server 2008架构设置:
Create table Sort_age
(year nvarchar(50),month nvarchar(50),code int,Category nvarchar(50),Field nvarchar(50),Info nvarchar(50))
insert into Sort_age
(year ,month ,code,Category,Field,Info)
Values
('2013','jan',3,'student','Name','John'),
('2013','jan',3,'student','Age','14'),
('2013','feb',2,'teacher','Name','Mika'),
('2013','feb',2,'teacher','Age','25')
查询1 :
SELECT YEAR,MONTH,CODE,CATEGORY,NAME=MAX(INFO) , AGE =MIN(INFO)
FROM Sort_age
GROUP BY YEAR,MONTH,CODE,CATEGORY
ORDER BY CODE DESC
<强> Results 强>:
| YEAR | MONTH | CODE | CATEGORY | NAME | AGE |
|------|-------|------|----------|------|-----|
| 2013 | jan | 3 | student | John | 14 |
| 2013 | feb | 2 | teacher | Mika | 25 |
答案 1 :(得分:0)
如果是sql server使用此
SELECT YEAR,MONTH,CODE,CATEGORY,NAME=MAX(INFO) , AGE =MIN(INFO)
FROM Table
GROUP BY YEAR,MONTH,CODE,CATEGORY
ORDER BY CODE DESC
答案 2 :(得分:0)
试试这个
SELECT year,Month,Code,Category,
MAX(CASE WHEN Field = 'Name' THEN Info ELSE null END) AS Name,
Max(CASE WHEN Field = 'Age' THEN Info ELSE null END) AS Age
FROM Sort_age
GROUP BY year,Month,Code,Category
<强> Fiddle Demo 强>
输出
| YEAR | MONTH | CODE | CATEGORY | NAME | AGE |
|------|-------|------|----------|------|-----|
| 2013 | jan | 3 | student | John | 14 |
| 2013 | feb | 2 | teacher | Mika | 25 |