Есть таблица которая сожержит 4 колонок(колонка 1, колонка 2, колонка 3, колонка 4).
Как можно написать на SQL код чтоб он возвратил таблицу в следущем ввиде
Я читал что можно это сделать с помощью PIVOT но у меня не получаеться.
Буде очень блогадарен если поможете мне.
Если есть другой способ тоже буду рад.
Здравствуйте, Elena_, Вы писали:
E_>Здравствуйте, TheAteist, Вы писали:
TA>>Я читал что можно это сделать с помощью PIVOT но у меня не получаеться.
E_>PIVOT — это не стандарт SQL
E_>Если Access, то см. TRANSFORM
E_>Для SQL server без OLAP и др. можно в некоторых случаях использовать специальные приемы
E_>HOW TO: Rotate a Table in SQL Server Q175574
E_>Можно также выбросить данные в Excel и воспользоваться PIVOT от Excel E_>просто для данных на листе Excel
E_>В общем, лучше бы уточнить задачу
Здравствуйте, Elena_, Вы писали:
E_>Здравствуйте, TheAteist, Вы писали:
TA>>Я читал что можно это сделать с помощью PIVOT но у меня не получаеться.
E_>PIVOT — это не стандарт SQL
E_>Если Access, то см. TRANSFORM
E_>Для SQL server без OLAP и др. можно в некоторых случаях использовать специальные приемы
E_>HOW TO: Rotate a Table in SQL Server Q175574
E_>Можно также выбросить данные в Excel и воспользоваться PIVOT от Excel E_>просто для данных на листе Excel
E_>В общем, лучше бы уточнить задачу
*там где написанно 'nuuuuuull' то в том месте должно быть пусто
Как можно это сделать с помощью PIVOT
Если есть другой способ тоже буду рад.
Буде очень блогадарен если поможете мне.
Я к тому же просмотрел следующую ссылку http://www.sql.ru/faq/faq_topic.aspx?fid=358
но он пишет что проблема с pivot в этих строках
SELECT top 1 @delim = CASE ISNUMERIC(pivot) WHEN 1 THEN '' ELSE '''' END FROM ##pivot
DECLARE cur_pivot_cursor scroll CURSOR FOR select pivot from ##pivot order by pivot
помогите пожалуйста. и разве не надо заменить ##pivot на свое имя?
Здравствуйте, TheAteist, Вы писали:
TA>Здравствуйте, Elena_, Вы писали:
E_>>Здравствуйте, TheAteist, Вы писали:
TA>>>Я читал что можно это сделать с помощью PIVOT но у меня не получаеться.
E_>>PIVOT — это не стандарт SQL
E_>>Если Access, то см. TRANSFORM
E_>>Для SQL server без OLAP и др. можно в некоторых случаях использовать специальные приемы
E_>>HOW TO: Rotate a Table in SQL Server Q175574
E_>>Можно также выбросить данные в Excel и воспользоваться PIVOT от Excel E_>>просто для данных на листе Excel
E_>>В общем, лучше бы уточнить задачу
TA>Имееться таблица:
TA>|колонка 1|колонка 2|колонка 3| TA>|-------------|-------------|-------------| TA>| 1111111 | 01/01/06 |AAAAAAAA| TA>| 2222222 | 02/02/06 |BBBBBBBB| TA>| 3333333 | 03/03/06 |CCCCCCC| TA>| 4444444 | 04/04/06 |DDDDDDD|
TA>Как можно написать на SQL код чтоб он возвратил таблицу в следущем ввиде
TA>|колонка1|01/01/06|02/02/06|03/03/06|04/04/06| TA>|------------|------------|------------|------------|------------| TA>| 1111111| AAAAAAA| nuuuuull| nuuuuull | nuuuuull| TA>| 2222222| nuuuuull| BBBBBBB| nuuuuull | nuuuuull| TA>| 3333333| nuuuuull| nuuuuull| CCCCCC | nuuuuull | TA>| 4444444| nuuuuull| nuuuuull| nuuuuuull| DDDDDD|
TA>*там где написанно 'nuuuuuull' то в том месте должно быть пусто
TA>Как можно это сделать с помощью PIVOT TA>Если есть другой способ тоже буду рад. TA>Буде очень блогадарен если поможете мне.
TA>Я к тому же просмотрел следующую ссылку http://www.sql.ru/faq/faq_topic.aspx?fid=358 TA> но он пишет что проблема с pivot в этих строках TA> SELECT top 1 @delim = CASE ISNUMERIC(pivot) WHEN 1 THEN '' ELSE '''' END FROM ##pivot TA> DECLARE cur_pivot_cursor scroll CURSOR FOR select pivot from ##pivot order by pivot TA>помогите пожалуйста. и разве не надо заменить ##pivot на свое имя?
TA>СПАСИБО заранее.
Здравствуйте, DarkSid, Вы писали:
DS>Здравствуйте, TheAteist, Вы писали:
TA>>Здравствуйте, Elena_, Вы писали:
E_>>>Здравствуйте, TheAteist, Вы писали:
TA>>>>Я читал что можно это сделать с помощью PIVOT но у меня не получаеться.
E_>>>PIVOT — это не стандарт SQL
E_>>>Если Access, то см. TRANSFORM
E_>>>Для SQL server без OLAP и др. можно в некоторых случаях использовать специальные приемы
E_>>>HOW TO: Rotate a Table in SQL Server Q175574
E_>>>Можно также выбросить данные в Excel и воспользоваться PIVOT от Excel E_>>>просто для данных на листе Excel
E_>>>В общем, лучше бы уточнить задачу
TA>>Имееться таблица:
TA>>|колонка 1|колонка 2|колонка 3| TA>>|-------------|-------------|-------------| TA>>| 1111111 | 01/01/06 |AAAAAAAA| TA>>| 2222222 | 02/02/06 |BBBBBBBB| TA>>| 3333333 | 03/03/06 |CCCCCCC| TA>>| 4444444 | 04/04/06 |DDDDDDD|
TA>>Как можно написать на SQL код чтоб он возвратил таблицу в следущем ввиде
TA>>|колонка1|01/01/06|02/02/06|03/03/06|04/04/06| TA>>|------------|------------|------------|------------|------------| TA>>| 1111111| AAAAAAA| nuuuuull| nuuuuull | nuuuuull| TA>>| 2222222| nuuuuull| BBBBBBB| nuuuuull | nuuuuull| TA>>| 3333333| nuuuuull| nuuuuull| CCCCCC | nuuuuull | TA>>| 4444444| nuuuuull| nuuuuull| nuuuuuull| DDDDDD|
TA>>*там где написанно 'nuuuuuull' то в том месте должно быть пусто
TA>>Как можно это сделать с помощью PIVOT TA>>Если есть другой способ тоже буду рад. TA>>Буде очень блогадарен если поможете мне.
TA>>Я к тому же просмотрел следующую ссылку http://www.sql.ru/faq/faq_topic.aspx?fid=358 TA>> но он пишет что проблема с pivot в этих строках TA>> SELECT top 1 @delim = CASE ISNUMERIC(pivot) WHEN 1 THEN '' ELSE '''' END FROM ##pivot TA>> DECLARE cur_pivot_cursor scroll CURSOR FOR select pivot from ##pivot order by pivot TA>>помогите пожалуйста. и разве не надо заменить ##pivot на свое имя?
TA>>СПАСИБО заранее.
DS>##pivot временая таблица DS> С приведенным примером используй DS>exec crosstab 'Table1' , 'Column1','Max(Column3)','Column2'
DS>Результат ниже DS>1111111 AAAAAAAA NULL NULL NULL DS>2222222 NULL BBBBBBBB NULL NULL DS>3333333 NULL NULL CCCCCCC NULL DS>4444444 NULL NULL NULL DDDDDDD
DS>C
проблема в том что когда я внес код(с ссылки http://www.sql.ru/faq/faq_topic.aspx?fid=358 ) в программу SQL то не могу сделaть ни parsin ни execute
когда я делаю parsing он пишет что проблема с pivot в этих строках(syntax error near 'pivot') и когда я нажимаю 2-ной щелчек на эту ошибку то он указывает на эти строки
SELECT top 1 @delim = CASE ISNUMERIC(pivot) WHEN 1 THEN '' ELSE '''' END FROM ##pivot
DECLARE cur_pivot_cursor scroll CURSOR FOR select pivot from ##pivot order by pivot
поэтому пока я не смогу сделать parsing то не смогу сделать exec
что это может быть?
и разве не надо заменить ##pivot на свое имя или оставить так?
Здравствуйте, TheAteist, Вы писали:
TA>Здравствуйте, DarkSid, Вы писали:
DS>>Здравствуйте, TheAteist, Вы писали:
TA>>>Здравствуйте, Elena_, Вы писали:
E_>>>>Здравствуйте, TheAteist, Вы писали:
TA>>>>>Я читал что можно это сделать с помощью PIVOT но у меня не получаеться.
E_>>>>PIVOT — это не стандарт SQL
E_>>>>Если Access, то см. TRANSFORM
E_>>>>Для SQL server без OLAP и др. можно в некоторых случаях использовать специальные приемы
E_>>>>HOW TO: Rotate a Table in SQL Server Q175574
E_>>>>Можно также выбросить данные в Excel и воспользоваться PIVOT от Excel E_>>>>просто для данных на листе Excel
E_>>>>В общем, лучше бы уточнить задачу
TA>>>Имееться таблица:
TA>>>|колонка 1|колонка 2|колонка 3| TA>>>|-------------|-------------|-------------| TA>>>| 1111111 | 01/01/06 |AAAAAAAA| TA>>>| 2222222 | 02/02/06 |BBBBBBBB| TA>>>| 3333333 | 03/03/06 |CCCCCCC| TA>>>| 4444444 | 04/04/06 |DDDDDDD|
TA>>>Как можно написать на SQL код чтоб он возвратил таблицу в следущем ввиде
TA>>>|колонка1|01/01/06|02/02/06|03/03/06|04/04/06| TA>>>|------------|------------|------------|------------|------------| TA>>>| 1111111| AAAAAAA| nuuuuull| nuuuuull | nuuuuull| TA>>>| 2222222| nuuuuull| BBBBBBB| nuuuuull | nuuuuull| TA>>>| 3333333| nuuuuull| nuuuuull| CCCCCC | nuuuuull | TA>>>| 4444444| nuuuuull| nuuuuull| nuuuuuull| DDDDDD|
TA>>>*там где написанно 'nuuuuuull' то в том месте должно быть пусто
TA>>>Как можно это сделать с помощью PIVOT TA>>>Если есть другой способ тоже буду рад. TA>>>Буде очень блогадарен если поможете мне.
TA>>>Я к тому же просмотрел следующую ссылку http://www.sql.ru/faq/faq_topic.aspx?fid=358 TA>>> но он пишет что проблема с pivot в этих строках TA>>> SELECT top 1 @delim = CASE ISNUMERIC(pivot) WHEN 1 THEN '' ELSE '''' END FROM ##pivot TA>>> DECLARE cur_pivot_cursor scroll CURSOR FOR select pivot from ##pivot order by pivot TA>>>помогите пожалуйста. и разве не надо заменить ##pivot на свое имя?
TA>>>СПАСИБО заранее.
DS>>##pivot временая таблица DS>> С приведенным примером используй DS>>exec crosstab 'Table1' , 'Column1','Max(Column3)','Column2'
DS>>Результат ниже DS>>1111111 AAAAAAAA NULL NULL NULL DS>>2222222 NULL BBBBBBBB NULL NULL DS>>3333333 NULL NULL CCCCCCC NULL DS>>4444444 NULL NULL NULL DDDDDDD
DS>>C
TA>проблема в том что когда я внес код(с ссылки http://www.sql.ru/faq/faq_topic.aspx?fid=358 ) в программу SQL то не могу сделaть ни parsin ни execute TA>когда я делаю parsing он пишет что проблема с pivot в этих строках(syntax error near 'pivot') и когда я нажимаю 2-ной щелчек на эту ошибку то он указывает на эти строки
TA>SELECT top 1 @delim = CASE ISNUMERIC(pivot) WHEN 1 THEN '' ELSE '''' END FROM ##pivot TA>DECLARE cur_pivot_cursor scroll CURSOR FOR select pivot from ##pivot order by pivot
TA>поэтому пока я не смогу сделать parsing то не смогу сделать exec TA>что это может быть? TA>и разве не надо заменить ##pivot на свое имя или оставить так?
Здравствуйте, DarkSid, Вы писали:
DS>Здравствуйте, TheAteist, Вы писали:
TA>>Здравствуйте, DarkSid, Вы писали:
DS>>>Здравствуйте, TheAteist, Вы писали:
TA>>>>Здравствуйте, Elena_, Вы писали:
E_>>>>>Здравствуйте, TheAteist, Вы писали:
TA>>>>>>Я читал что можно это сделать с помощью PIVOT но у меня не получаеться.
E_>>>>>PIVOT — это не стандарт SQL
E_>>>>>Если Access, то см. TRANSFORM
E_>>>>>Для SQL server без OLAP и др. можно в некоторых случаях использовать специальные приемы
E_>>>>>HOW TO: Rotate a Table in SQL Server Q175574
E_>>>>>Можно также выбросить данные в Excel и воспользоваться PIVOT от Excel E_>>>>>просто для данных на листе Excel
E_>>>>>В общем, лучше бы уточнить задачу
TA>>>>Имееться таблица:
TA>>>>|колонка 1|колонка 2|колонка 3| TA>>>>|-------------|-------------|-------------| TA>>>>| 1111111 | 01/01/06 |AAAAAAAA| TA>>>>| 2222222 | 02/02/06 |BBBBBBBB| TA>>>>| 3333333 | 03/03/06 |CCCCCCC| TA>>>>| 4444444 | 04/04/06 |DDDDDDD|
TA>>>>Как можно написать на SQL код чтоб он возвратил таблицу в следущем ввиде
TA>>>>|колонка1|01/01/06|02/02/06|03/03/06|04/04/06| TA>>>>|------------|------------|------------|------------|------------| TA>>>>| 1111111| AAAAAAA| nuuuuull| nuuuuull | nuuuuull| TA>>>>| 2222222| nuuuuull| BBBBBBB| nuuuuull | nuuuuull| TA>>>>| 3333333| nuuuuull| nuuuuull| CCCCCC | nuuuuull | TA>>>>| 4444444| nuuuuull| nuuuuull| nuuuuuull| DDDDDD|
TA>>>>*там где написанно 'nuuuuuull' то в том месте должно быть пусто
TA>>>>Как можно это сделать с помощью PIVOT TA>>>>Если есть другой способ тоже буду рад. TA>>>>Буде очень блогадарен если поможете мне.
TA>>>>Я к тому же просмотрел следующую ссылку http://www.sql.ru/faq/faq_topic.aspx?fid=358 TA>>>> но он пишет что проблема с pivot в этих строках TA>>>> SELECT top 1 @delim = CASE ISNUMERIC(pivot) WHEN 1 THEN '' ELSE '''' END FROM ##pivot TA>>>> DECLARE cur_pivot_cursor scroll CURSOR FOR select pivot from ##pivot order by pivot TA>>>>помогите пожалуйста. и разве не надо заменить ##pivot на свое имя?
TA>>>>СПАСИБО заранее.
DS>>>##pivot временая таблица DS>>> С приведенным примером используй DS>>>exec crosstab 'Table1' , 'Column1','Max(Column3)','Column2'
DS>>>Результат ниже DS>>>1111111 AAAAAAAA NULL NULL NULL DS>>>2222222 NULL BBBBBBBB NULL NULL DS>>>3333333 NULL NULL CCCCCCC NULL DS>>>4444444 NULL NULL NULL DDDDDDD
DS>>>C
TA>>проблема в том что когда я внес код(с ссылки http://www.sql.ru/faq/faq_topic.aspx?fid=358 ) в программу SQL то не могу сделaть ни parsin ни execute TA>>когда я делаю parsing он пишет что проблема с pivot в этих строках(syntax error near 'pivot') и когда я нажимаю 2-ной щелчек на эту ошибку то он указывает на эти строки
TA>>SELECT top 1 @delim = CASE ISNUMERIC(pivot) WHEN 1 THEN '' ELSE '''' END FROM ##pivot TA>>DECLARE cur_pivot_cursor scroll CURSOR FOR select pivot from ##pivot order by pivot
TA>>поэтому пока я не смогу сделать parsing то не смогу сделать exec TA>>что это может быть? TA>>и разве не надо заменить ##pivot на свое имя или оставить так?
DS>Какой SQL Server используешь?
я использую SQL Server 2005
жду скорейшего ответа
спасибо зарание!
Если хочешь использовать скипт. которвй обсуждали ранее замени в нем текст Pivot на что-то другой, например, pvtMy
Но советую разбраться с Pivot в 2005 — это лучше. Тем более статья и BOL есть. У меня под рукой 2005 нет, к сожалению
DS>Если хочешь использовать скипт. которвй обсуждали ранее замени в нем текст Pivot на что-то другой, например, pvtMy DS>Но советую разбраться с Pivot в 2005 — это лучше. Тем более статья и BOL есть. У меня под рукой 2005 нет, к сожалению