Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема Как транспонировать таблицу (число прочтений - 3486 )
sashas09
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 148
Местоположение: Киев
Зарегистрирован: 26. Апреля 2007
Пол: Мужской
Как транспонировать таблицу
16. Июля 2007 :: 15:59
Печать  
Исторически сложилось, что в базе есть Регистр который содержит некоторые данные понедельно

т.е каждая запись выглядит как Клиент, препарат, неделя Количество

Можно в запросе(прямом) получить данные

Клиент препарат КоличествоВНеделеХ,КоличествоВНеделеХ+1.... КоличествоВНеделеХ+N

Собственно вопрос
и недель ведь может быть 53 .....
  
Наверх
ICQ  
IP записан
 
x-pert
1c++ developer
Отсутствует



Сообщений: 134
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Как транспонировать таблицу
Ответ #1 - 16. Июля 2007 :: 16:00
Печать  
Лень цикл построить, обрабатывающий данные запроса?
  
Наверх
 
IP записан
 
sashas09
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 148
Местоположение: Киев
Зарегистрирован: 26. Апреля 2007
Пол: Мужской
Re: Как транспонировать таблицу
Ответ #2 - 16. Июля 2007 :: 16:07
Печать  
типа да... Подмигивание

а что - задача в поставленом виде не решается?
  
Наверх
ICQ  
IP записан
 
Вадимко
God Member
*****
Отсутствует


Нам бы чего про ОдноЦэ...

Сообщений: 1048
Местоположение: Минск
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: Как транспонировать таблицу
Ответ #3 - 16. Июля 2007 :: 19:11
Печать  
Слово-то какое... "транспонировать"... мы консерваториефф не кончали...
Предлагаю пройтись поиском по группировка День все - наверное аналогично надо
  

Кампутер, кофе и сигареты - это очень плохо для моего здоровья...
Наверх
IP записан
 
dnp
Senior Member
****
Отсутствует


.

Сообщений: 479
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Как транспонировать таблицу
Ответ #4 - 17. Июля 2007 :: 02:50
Печать  
выгрузить в ТЗ и транспонировать её, пользуясь фактами :

1. ТаблицаЗначений.Выгрузить( СписокЗначений,,, Колонка ) выгружает в список колонку ТЗ
2. ТаблицаЗначений.Заполнить( СписокЗначений, НомерСтроки, НомерСтроки,  ) раскладывает список в строку ТЗ

Всё равно получается два цикла, только что не вложенных, как если бы перебирали каждое значение ТЗ.
  
Наверх
ICQ  
IP записан
 
DmitrO
1c++ power user
Отсутствует


ex developer

Сообщений: 579
Местоположение: г. Киров
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: Как транспонировать таблицу
Ответ #5 - 17. Июля 2007 :: 07:05
Печать  
select
Клиент,
препарат,
sum(case when неделя=:Неделя1 then Количество else 0 end) as КоличествоЗаНеделю1,
sum(case when неделя=:Неделя2 then Количество else 0 end) as КоличествоЗаНеделю2,
...
sum(case when неделя=:НеделяN then Количество else 0 end) as КоличествоЗаНеделюN
from Регистр
...
group by Клиент, препарат
...

Для MSSQL ограничение на количество колонок в результате запроса: 4096.
  
Наверх
ICQ  
IP записан
 
sashas09
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 148
Местоположение: Киев
Зарегистрирован: 26. Апреля 2007
Пол: Мужской
Re: Как транспонировать таблицу
Ответ #6 - 17. Июля 2007 :: 07:09
Печать  
Спасибо
так и думал сделать - как советует DmitrO
  
Наверх
ICQ  
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать