2014-07-04 3 views
0

У меня есть таблица «Sort_age» в файле под названием «Информация».Доступ к значениям столбца для заголовка

И что я в настоящее время в «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-запрос?

спасибо !!

+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 
+0

Большое вам спасибо за помощь !!! Но можем ли мы иметь более 2 случаев Max? Например, помимо ученика и учителя, мне нужно еще 2 поля, а именно «номер телефона» и «класс». Ive попробовал и получил синтаксическую ошибку): @azar – user3804871

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 | 
+0

Большое вам спасибо за вашу помощь !!! Но можем ли мы иметь более 2 случаев Max? Например, помимо ученика и учителя, мне нужно еще 2 поля, а именно «номер телефона» и «класс». Ive попробовал это и получил синтаксическую ошибку): @VigneshKumar – user3804871

+0

@ user3804871 Обновите свой запрос в своем вопросе. Я стараюсь изо всех сил. –

1

Попробуйте это: Demo here

сервера Настройка MS SQL 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

Скопированные ответы получают upvotes ..... –

Смежные вопросы