CrossTab : Аналог transform в MSACCESS

Модераторы: kdv, CyberMax

Ответить
PagaN
Сообщения: 12
Зарегистрирован: 16 дек 2006, 23:12

CrossTab : Аналог transform в MSACCESS

Сообщение PagaN » 29 янв 2007, 00:13

Вот, собственно, сабж.
Есть ли оный в InterBase/FireBird?

stepan96
Сообщения: 12
Зарегистрирован: 15 сен 2005, 11:52

Сообщение stepan96 » 29 янв 2007, 01:52

Может быть тебе поможет вот это?

PagaN
Сообщения: 12
Зарегистрирован: 16 дек 2006, 23:12

Сообщение PagaN » 29 янв 2007, 06:20

stepan96 писал(а):Может быть тебе поможет вот это?
Спасибо.
Видел, читал, но все-таки надеялся...
Мне тогда проще самому пару-тройку запросов написать, завязавшись на свою структуру, благо их нужно немного.

Жаль что нет "решения на системном уровне"(с) Сага о программистах

Attid
Спец
Сообщения: 377
Зарегистрирован: 14 ноя 2006, 09:58

Сообщение Attid » 13 май 2007, 01:52

а есть ли такая процедурка под птичку 2 у кого нибуть ? :roll:
назревает такая ситуация что понадобятся кросы, и хотелось бы одним запросом их решить, в случае использования процедуры их все равно будет 2 , но уже лучше чем ничего =)

кста никогда не работал с времеными таблицами может примерчик у кого есть?

WildSery
Заслуженный разработчик
Сообщения: 1738
Зарегистрирован: 05 июн 2006, 16:19

Сообщение WildSery » 14 май 2007, 13:49

Attid писал(а):назревает такая ситуация что понадобятся кросы
Кросс - это чаще всего отчёт. Так может, отчётником эту задачу и решать?

Attid
Спец
Сообщения: 377
Зарегистрирован: 14 ноя 2006, 09:58

Сообщение Attid » 17 май 2007, 14:38

Кросс - это чаще всего отчёт. Так может, отчётником эту задачу и решать?
да отчет. отчетом то самое просто решить, мы же легких путей не ищем =)

просто у меня отчеты одновременно отоброжаются и в клиенте и через веб. так что отображение в грид получается самым простым решением.


интересно а можно ли сделать как нибуть так:
процедура будет возрощать result в таком виде
~поле1~поле2~поле3~поле4~
~23~23~43~456~
~456~897~12~7~

и чтоб сделать селект в селекте чтоб вытащить даные отсуда ?

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 17 май 2007, 15:13

и чтоб сделать селект в селекте чтоб вытащить даные отсуда ?
www.ibase.ru/ibfaq.htm

WildSery
Заслуженный разработчик
Сообщения: 1738
Зарегистрирован: 05 июн 2006, 16:19

Сообщение WildSery » 17 май 2007, 16:01

Attid писал(а):так что отображение в грид получается самым простым решением.
Вроде отчётники и в веб умеют. Ы?

Attid
Спец
Сообщения: 377
Зарегистрирован: 14 ноя 2006, 09:58

Сообщение Attid » 17 май 2007, 16:07

ну значек ~ я там то и увидел =)
и как параметр это использовать тоже пнятно,
даже понятно как в процедуре это порезать если известно кол-во столбцов
а вот как это в селекте сделать, но не увидел я там.

единственое что придумал это не делать разделитили ~
,а определить максимальный размер значения к примеру 3

Код: Выделить всё

select substring(RESULT from 1 for 3),
       substring(RESULT from 4 for 3),
       substring(RESULT from 7 for 3),
       substring(RESULT from 10 for 3),
       substring(RESULT from 13 for 3),
       substring(RESULT from 16 for 3),
       substring(RESULT from 19 for 3) from
(select '111  2333444  5 62' RESULT from rdb$database)
минусы
1 в реальности максимальный размер не будет меньше 20
2 количество сабстрингов может быть несколько десятков
3 для универсальности все лишнии сабстринги будут пустышками болтаться

плюсы
ну хоть какой-то результат =)

PS. знаю что изврат, но если можно так добится результата то почему бы и нет =)
Вроде отчётники и в веб умеют. Ы?
да но мысль в том чтоб не менять веб движок на каждый отчет.

WildSery
Заслуженный разработчик
Сообщения: 1738
Зарегистрирован: 05 июн 2006, 16:19

Сообщение WildSery » 17 май 2007, 16:37

Attid писал(а):да но мысль в том чтоб не менять веб движок на каждый отчет.
Тогда выбирай в обычном виде, SELECT ROW_N, COL_N, DATA, предварительно получив SELECT DISTINCT COL_N, и сам распределяй, в стринггрид.

Ответить