Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / А можно-ли динамически сформировать имя колонки? / 14 сообщений из 14, страница 1 из 1
27.02.2006, 14:01
    #33567877
Петро1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
А можно-ли динамически сформировать имя колонки?
здрасте!

как можно извернуться для сабжа? В процедуре создаётся временная таблица, заранее число полей не известно. Как поступить?

сервер асе 12.........

Спасибо
...
Рейтинг: 0 / 0
27.02.2006, 14:06
    #33567899
Dmitry.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
А можно-ли динамически сформировать имя колонки?
--Создаем таблицу с одной колонкой
create table #tmp(
id numeric(10);
)

--затем добавляем остальные
execute ('alter table #tmp add column ...')
...
Рейтинг: 0 / 0
27.02.2006, 15:05
    #33568127
Петро1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
А можно-ли динамически сформировать имя колонки?
Dmitry.execute ('alter table #tmp add column ...')

так можно? йоохооо! СЕНКС!
...
Рейтинг: 0 / 0
27.02.2006, 16:32
    #33568455
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
А можно-ли динамически сформировать имя колонки?
Так можно , но ненужно. Таблиц с переменным количеством колонок не бывает, это вы с Экселем путаете. Надо просто по-другому все делать.
...
Рейтинг: 0 / 0
27.02.2006, 17:30
    #33568690
Петро1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
А можно-ли динамически сформировать имя колонки?
MasterZivТак можно , но ненужно. Таблиц с переменным количеством колонок не бывает, это вы с Экселем путаете. Надо просто по-другому все делать.

ок. тогда вот в кратце моя ситуация подскажите как ещё можно сделать
есть виды деятельности. их соответственно можно добавлять/удалять.
есть проводки денег связанные с каким либо видом деятельности
соотвественно надо строить отчёт по движениям. отчёт состоит из колонок виды деятельности, помимо всего прочего. тоесть захаркодить определёнрое колличество столбцов не представляется вохможным. завтра введут новый вид деятельности. и всё.
...
Рейтинг: 0 / 0
27.02.2006, 18:22
    #33568830
Петро1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
А можно-ли динамически сформировать имя колонки?
по ходу дела сообщаю о следующей ситуации
exec(@str) выполняться-то выполняется но в контексте процедуры заметных изменений нету. @@sqlstatus равен 0 а колонок нету :(

код:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
declare @numberITB int,
            @sqlCommand varchar( 255 )

    create table #columnsTbl(
        cmp_name varchar( 8 ))

    select @numberITB = count(*) from itemBudget where bgd_id = convert(numeric, @bgd_id)
    if(@numberITB =  0 ) return

    while(@numberITB >  0 ) begin
        select @sqlCommand = 'alter table #columnsTbl add field' + convert(varchar( 8 ), @numberITB) + ' varchar(32) null'
        exec(@sqlCommand)
        select @sqlCommand = convert(varchar( 255 ), @@error)
        print @sqlCommand
        select @numberITB = @numberITB -  1 
    end

    select * from #columnsTbl
...
Рейтинг: 0 / 0
27.02.2006, 18:32
    #33568866
Zhora
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
А можно-ли динамически сформировать имя колонки?
Петро1 MasterZivТак можно , но ненужно. Таблиц с переменным количеством колонок не бывает, это вы с Экселем путаете. Надо просто по-другому все делать.

ок. тогда вот в кратце моя ситуация подскажите как ещё можно сделать
есть виды деятельности. их соответственно можно добавлять/удалять.
есть проводки денег связанные с каким либо видом деятельности
соотвественно надо строить отчёт по движениям. отчёт состоит из колонок виды деятельности, помимо всего прочего. тоесть захаркодить определёнрое колличество столбцов не представляется вохможным. завтра введут новый вид деятельности. и всё.
...
Рейтинг: 0 / 0
27.02.2006, 18:40
    #33568888
Zhora
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
А можно-ли динамически сформировать имя колонки?
Желательно не колонками мыслить а строчками с колонкой "тип вида деятельности" (если все остальное тоже самое), а для spreadsheet вывода
слепить view с pivoting-ом (разворотом)
...
Рейтинг: 0 / 0
27.02.2006, 22:55
    #33569271
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
А можно-ли динамически сформировать имя колонки?
Петро1 MasterZivТак можно , но ненужно. Таблиц с переменным количеством колонок не бывает, это вы с Экселем путаете. Надо просто по-другому все делать.

ок. тогда вот в кратце моя ситуация подскажите как ещё можно сделать
есть виды деятельности. их соответственно можно добавлять/удалять.
есть проводки денег связанные с каким либо видом деятельности
соотвественно надо строить отчёт по движениям. отчёт состоит из колонок виды деятельности, помимо всего прочего. тоесть захаркодить определёнрое колличество столбцов не представляется вохможным. завтра введут новый вид деятельности. и всё.

Таблица:

| кодДвижения | кодВидаДеятельности | кодПроводки | ... | суммаПроводки |
...
Рейтинг: 0 / 0
27.02.2006, 22:56
    #33569273
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
А можно-ли динамически сформировать имя колонки?
Zhora а для spreadsheet вывода
слепить view с pivoting-ом (разворотом)

Нет, нет, пусть это делает КЛИЕНТ. Средств -- дофига. Отчетники, Эксель.
...
Рейтинг: 0 / 0
27.02.2006, 23:13
    #33569297
Zhora
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
А можно-ли динамически сформировать имя колонки?
Ну, не знаю. Сам делал и так (views с sum(case)) и так (группы в Crystal c sum ), на сlient-е медленно,хотя сейчас там(в CRW)вроде можно указать и на сервере БД.
...
Рейтинг: 0 / 0
28.02.2006, 10:56
    #33569963
Петро1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
А можно-ли динамически сформировать имя колонки?
MasterZivТаблица:
| кодДвижения | кодВидаДеятельности | кодПроводки | ... | суммаПроводки |

хм. а разве удобно? ведь потом надо будет разварачивать её на клиенте.
всё конечно зависит от конкретной ситуации, но в общем случае мне кажеться что проще получить подготовленные данные и просто вывести в грид. останется только столбцы переименовать. или я не прав?

или подразумевается что потом наложить на таблицу view с pivoting-ом, да? (я просто не сталкивался с view с pivoting-ом)
...
Рейтинг: 0 / 0
28.02.2006, 11:16
    #33570053
Dmitry.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
А можно-ли динамически сформировать имя колонки?
Утверждение о том что пусть это все делает клиент конечно правильные, но бывают разные ситуации. например клиент уже написан (intranet) а отчеты генерятся из процедур и резалтсет процедуры - есть отчет.
не переписывать - же клиента!

Возможно , если ситуация подобная, то можно посоветовать поставить разумное ограничение (например max 40 колонок), и делать #tmp таблицу нормальным образом. а селект делать только нужных колонок.
...
Рейтинг: 0 / 0
28.02.2006, 13:40
    #33570662
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
А можно-ли динамически сформировать имя колонки?
хм. а разве удобно?

Да, если ты пишешь на SQL, а не Exel.

ведь потом надо будет разварачивать её на клиенте.

Ну и разверни !!
...
Рейтинг: 0 / 0
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / А можно-ли динамически сформировать имя колонки? / 14 сообщений из 14, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]