Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Из столбцов в строку по ключевому полю  [new]
equipmentt
Member

Откуда:
Сообщений: 24
подскажите, пожалуйста, как сделать
из таблицы вида
Time	       A	B      C      D	    
08.09.2014	18	4	28	57
07.09.2014	15	49	29	59
06.09.2014	8	41	2	6


эту

A   18    08.09.2014
B    4    08.09.2014
C   28    08.09.2014
D   57    08.09.2014
A   15    07.09.2014
B   49    07.09.2014
C   29    07.09.2014
D   59    07.09.2014
,,,


sql 2000
9 сен 14, 15:51    [16555105]     Ответить | Цитировать Сообщить модератору
 Re: Из столбцов в строку по ключевому полю  [new]
Glory
Member

Откуда:
Сообщений: 104751
select a ...
union all
select b ...
union all
select c ...
union all
select d ...
9 сен 14, 15:53    [16555125]     Ответить | Цитировать Сообщить модератору
 Re: Из столбцов в строку по ключевому полю  [new]
equipmentt
Member

Откуда:
Сообщений: 24
строк десятки тысяч..
9 сен 14, 15:53    [16555133]     Ответить | Цитировать Сообщить модератору
 Re: Из столбцов в строку по ключевому полю  [new]
aleks2
Guest
equipmentt
строк десятки тысяч..

Дык в примере 4 (четыре) строчки.
9 сен 14, 15:57    [16555181]     Ответить | Цитировать Сообщить модератору
 Re: Из столбцов в строку по ключевому полю  [new]
Glory
Member

Откуда:
Сообщений: 104751
equipmentt
строк десятки тысяч..

Десять тысяч полей не может быть.
9 сен 14, 15:57    [16555184]     Ответить | Цитировать Сообщить модератору
 Re: Из столбцов в строку по ключевому полю  [new]
equipmentt
Member

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

десятки тысяч не полей, а строк в исходной таблице, полей там всего с десяток
9 сен 14, 16:03    [16555226]     Ответить | Цитировать Сообщить модератору
 Re: Из столбцов в строку по ключевому полю  [new]
Glory
Member

Откуда:
Сообщений: 104751
equipmentt
Glory,

десятки тысяч не полей, а строк в исходной таблице, полей там всего с десяток

И в чем проблема ?
9 сен 14, 16:03    [16555228]     Ответить | Цитировать Сообщить модератору
 Re: Из столбцов в строку по ключевому полю  [new]
equipmentt
Member

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

разобрался. спасибо

теперь еще усложню..как каждому полю в результате добавить еще id соответствия

т.е id = 1 это A
id = 2 это B и т.д.
9 сен 14, 16:25    [16555397]     Ответить | Цитировать Сообщить модератору
 Re: Из столбцов в строку по ключевому полю  [new]
Wlr-l
Member

Откуда:
Сообщений: 602
equipmentt, вариант решения:

with A as ( --создаем вспомогательную таблицу
 select * from (values ('A'), ('B'), ('C'), ('D')) as T(ca)
)

, B as ( --эмуляция вашей таблицы
 select * from (values ('20140908', 18,  4, 28, 57),
                       ('20140907', 15, 49, 29, 59),
                       ('20140906',  8, 41,  2,  6)
               ) as T        (time,  A,  B,  C,  D)
)


 select ca,
        case when ca='A' then A 
             when ca='B' then B
             when ca='C' then C
             when ca='D' then D
        end as res,
        time
   --from B cross join A;
   from       B,A;
9 сен 14, 16:30    [16555433]     Ответить | Цитировать Сообщить модератору
 Re: Из столбцов в строку по ключевому полю  [new]
Glory
Member

Откуда:
Сообщений: 104751
Wlr-l
equipmentt, вариант решения:

Эй, Макиавелли ! sql 2000
9 сен 14, 16:33    [16555451]     Ответить | Цитировать Сообщить модератору
 Re: Из столбцов в строку по ключевому полю  [new]
Wlr-l
Member

Откуда:
Сообщений: 602
Glory,
В комментариях все написано, последний select выполняется как в 2000, так и более новых версиях.
9 сен 14, 16:38    [16555483]     Ответить | Цитировать Сообщить модератору
 Re: Из столбцов в строку по ключевому полю  [new]
Glory
Member

Откуда:
Сообщений: 104751
Wlr-l
последний select выполняется как в 2000, так и более новых версиях.

А он будет работать без предыдущих ?
9 сен 14, 16:40    [16555512]     Ответить | Цитировать Сообщить модератору
 Re: Из столбцов в строку по ключевому полю  [new]
Wlr-l
Member

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

1.ТС не привел скриптов для генерирования исходных данных, поэтому я вправе их сгенерировать по своему усмотрению.

2.Я показал еще один способ решения задачи.

3.ТС будет из чего выбирать.

4.Макевиализм - не моя черта. Опять Вы мне приписываете Ваши качества.
9 сен 14, 16:46    [16555547]     Ответить | Цитировать Сообщить модератору
 Re: Из столбцов в строку по ключевому полю  [new]
equipmentt
Member

Откуда:
Сообщений: 24
а как каждому полю в результате добавить еще id соответствия..
9 сен 14, 16:47    [16555566]     Ответить | Цитировать Сообщить модератору
 Re: Из столбцов в строку по ключевому полю  [new]
Glory
Member

Откуда:
Сообщений: 104751
Wlr-l
1.ТС не привел скриптов для генерирования исходных данных, поэтому я вправе их сгенерировать по своему усмотрению.

Ага, невзирая на указанную версию ?

Wlr-l
2.Я показал еще один способ решения задачи.

Молодец

Wlr-l
3.ТС будет из чего выбирать.

Ваще молодец.

Wlr-l
4.Макевиализм - не моя черта. Опять Вы мне приписываете Ваши качества.

Вы еще и доктор ? В дополнению к "статистику" ?
9 сен 14, 16:49    [16555579]     Ответить | Цитировать Сообщить модератору
 Re: Из столбцов в строку по ключевому полю  [new]
Wlr-l
Member

Откуда:
Сообщений: 602
equipmentt,
c id, пожалуйста сами, а Glory напишет, что думает по этому поводу.
9 сен 14, 16:55    [16555625]     Ответить | Цитировать Сообщить модератору
 Re: Из столбцов в строку по ключевому полю  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
equipmentt
т.е id = 1 это A
id = 2 это B и т.д.

case id 
  when 1 then 'A'
  when 2 then 'B'
 .....
end
9 сен 14, 17:05    [16555690]     Ответить | Цитировать Сообщить модератору
 Re: Из столбцов в строку по ключевому полю  [new]
equipmentt
Member

Откуда:
Сообщений: 24
Maxx
equipmentt
т.е id = 1 это A
id = 2 это B и т.д.

case id 
  when 1 then 'A'
  when 2 then 'B'
 .....
end

после
select a ...
union all
select b ...
union all
select c ...
union all
select d ...


у меня на выходе только 2 поля время и значения. и вопрос в том как добавить названия столбцов в строки
9 сен 14, 17:19    [16555791]     Ответить | Цитировать Сообщить модератору
 Re: Из столбцов в строку по ключевому полю  [new]
Glory
Member

Откуда:
Сообщений: 104751
equipmentt
у меня на выходе только 2 поля время и значения. и вопрос в том как добавить названия столбцов в строки

руками. в каждый из запросов. так же, как вы добавили туда уже "2 поля время и значения"
9 сен 14, 17:21    [16555799]     Ответить | Цитировать Сообщить модератору
 Re: Из столбцов в строку по ключевому полю  [new]
equipmentt
Member

Откуда:
Сообщений: 24
т.е взамен этой, которую я хотел в первом сообщении
A   18    08.09.2014
B    4    08.09.2014
C   28    08.09.2014
D   57    08.09.2014
A   15    07.09.2014
B   49    07.09.2014
C   29    07.09.2014
D   59    07.09.2014
,,,


я получил

  18    08.09.2014
   4    08.09.2014
  28    08.09.2014
  57    08.09.2014
  15    07.09.2014
  49    07.09.2014
  29    07.09.2014
  59    07.09.2014
,,,
9 сен 14, 17:21    [16555803]     Ответить | Цитировать Сообщить модератору
 Re: Из столбцов в строку по ключевому полю  [new]
equipmentt
Member

Откуда:
Сообщений: 24
equipmentt
т.е взамен этой, которую я хотел в первом сообщении
A   18    08.09.2014
B    4    08.09.2014
C   28    08.09.2014
D   57    08.09.2014
A   15    07.09.2014
B   49    07.09.2014
C   29    07.09.2014
D   59    07.09.2014
,,,


я получил

  18    08.09.2014
   4    08.09.2014
  28    08.09.2014
  57    08.09.2014
  15    07.09.2014
  49    07.09.2014
  29    07.09.2014
  59    07.09.2014
,,,


может будут варианты? у меня не выходит
9 сен 14, 19:44    [16556360]     Ответить | Цитировать Сообщить модератору
 Re: Из столбцов в строку по ключевому полю  [new]
Glory
Member

Откуда:
Сообщений: 104751
equipmentt
может будут варианты? у меня не выходит

Как именно не выходит можно увидеть ?
9 сен 14, 21:56    [16556715]     Ответить | Цитировать Сообщить модератору
 Re: Из столбцов в строку по ключевому полю  [new]
invm
Member

Откуда: Москва
Сообщений: 9836
equipmentt
может будут варианты?
select
 case n.n
  when 1 then 'A'
  when 2 then 'B'
  when 3 then 'C'
  when 4 then 'D'
 end,
 case n.n
  when 1 then t.A
  when 2 then t.B
  when 3 then t.C
  when 4 then t.D
 end,
 t.[Time]
from
 Таблица t cross join
 (select 1 union all select 2 union all select 3 union all select 4) n(n)
9 сен 14, 21:57    [16556717]     Ответить | Цитировать Сообщить модератору
 Re: Из столбцов в строку по ключевому полю  [new]
equipmentt
Member

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

Большое спасибо!! заработало!
9 сен 14, 22:20    [16556805]     Ответить | Цитировать Сообщить модератору
 Re: Из столбцов в строку по ключевому полю  [new]
equipmentt
Member

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

но при создании view ругаеться
https://yadi.sk/i/5yr_rkOjbKr2Q
9 сен 14, 22:33    [16556847]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить