Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 как можно перевернуть таблицу  [new]
LianaShoms
Member

Откуда:
Сообщений: 12
Подскажите, как можно перевернуть таблицу?
То есть

Дата__________________| ТочкаКонтроля | Показатель | Результат | ЕИ | Норматив ---- |
----------------------------------------------------------------------------------------------------- |
2014-05-01 00:40:00.000 | АВТ-6 ________| Температура | 30 | С | не нормируется |
2014-05-01 00:40:00.000 | АВТ-6_________| метан______| 3,66 | мг/м3 | не более 50 [мг/м3] |
----------------------------------------------------------------------------------------------------- |


Надо получить

Дата | ТочкаКонтроля | Температура | метан |
----------------------------------------------------------------------|
2014-05-01 00:40:00.000 | АВТ-6 | 30 | 3,66 |
----------------------------------------------------------------------|


Точек контроля куча, параметры норматив и ЕИ можно опустить.

Пробовала искусственно создать столбцы "температура" и "метан" и туда перезаписать результат

Допустим итоговый селект в @itab, далее пробовала апдейтить эту таблицу:

update @itab
set Температура = Результат from @itab 
where Показатель = 'Температура'

update @itab
set Температура = '-' from @itab  
where Показатель <> 'Температура'

update @itab
set метан= Result from @itab 
where Показатель = 'Метан'

update @itab
set метан = '-' from @itab 
where Показатель <> 'Метан'


ну и получалась шахматная фигня


Дата | ТочкаКонтроля | Температура | метан |
----------------------------------------------------------------------|
2014-05-01 00:40:00.000 | АВТ-6 | 30 | - |
2014-05-01 00:40:00.000 | АВТ-6 | - | 3,66 |
----------------------------------------------------------------------|


Может есть какие предложения?
P.S.: Я не спец в T-SQL

К сообщению приложен файл. Размер - 19Kb
19 май 14, 14:57    [16037069]     Ответить | Цитировать Сообщить модератору
 Re: как можно перевернуть таблицу  [new]
Knyazev Alexey
Member

Откуда: Екб -> Мск
Сообщений: 10234
Блог
PIVOT
19 май 14, 15:33    [16037373]     Ответить | Цитировать Сообщить модератору
 Re: как можно перевернуть таблицу  [new]
_human
Member

Откуда:
Сообщений: 560
LianaShoms

ну и получалась шахматная фигня


Дата | ТочкаКонтроля | Температура | метан |
----------------------------------------------------------------------|
2014-05-01 00:40:00.000 | АВТ-6 | 30 | - |
2014-05-01 00:40:00.000 | АВТ-6 | - | 3,66 |
----------------------------------------------------------------------|


можно сгруппировать что б уйти от шахмат по-дальше ..

select Дата, ТочкаКонтроля ,   max(Температура),   max(метан) 
...
group by Дата  , ТочкаКонтроля


но лучше ничего "искусственно" не делать
19 май 14, 16:31    [16037945]     Ответить | Цитировать Сообщить модератору
 Re: как можно перевернуть таблицу  [new]
Cygapb-007
Member

Откуда:
Сообщений: 1677
LianaShoms,

PIVOT — поворот таблицы в T-SQL
19 май 14, 16:45    [16038052]     Ответить | Цитировать Сообщить модератору
 Re: как можно перевернуть таблицу  [new]
LianaShoms
Member

Откуда:
Сообщений: 12
Cygapb-007,

Спасибо, пробовала. Не совсем все-таки поняла, как делать с PIVOT. Но и там не вышло.... Что-то))
20 май 14, 06:27    [16040410]     Ответить | Цитировать Сообщить модератору
 Re: как можно перевернуть таблицу  [new]
LianaShoms
Member

Откуда:
Сообщений: 12
_human,
Спасибо большое! Так и сделала. Все ок.
Согласна, искусственно лучше не делать.
20 май 14, 06:56    [16040419]     Ответить | Цитировать Сообщить модератору
 Re: как можно перевернуть таблицу  [new]
_human
Member

Откуда:
Сообщений: 560
LianaShoms,

здается мне вы "подогнали" результат. :)
лучше сделайте нормальный пример данных. Например как здесь.
Получите правильный запрос с использованием PIVOT.
20 май 14, 10:34    [16041042]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить