Страница 1 из 1
CrossTab : Аналог transform в MSACCESS
Добавлено: 29 янв 2007, 00:13
PagaN
Вот, собственно, сабж.
Есть ли оный в InterBase/FireBird?
Добавлено: 29 янв 2007, 01:52
stepan96
Может быть тебе поможет вот
это?
Добавлено: 29 янв 2007, 06:20
PagaN
stepan96 писал(а):Может быть тебе поможет вот
это?
Спасибо.
Видел, читал, но все-таки надеялся...
Мне тогда проще самому пару-тройку запросов написать, завязавшись на свою структуру, благо их нужно немного.
Жаль что нет "решения на системном уровне"(с) Сага о программистах
Добавлено: 13 май 2007, 01:52
Attid
а есть ли такая процедурка под птичку 2 у кого нибуть ?
назревает такая ситуация что понадобятся кросы, и хотелось бы одним запросом их решить, в случае использования процедуры их все равно будет 2 , но уже лучше чем ничего =)
кста никогда не работал с времеными таблицами может примерчик у кого есть?
Добавлено: 14 май 2007, 13:49
WildSery
Attid писал(а):назревает такая ситуация что понадобятся кросы
Кросс - это чаще всего отчёт. Так может, отчётником эту задачу и решать?
Добавлено: 17 май 2007, 14:38
Attid
Кросс - это чаще всего отчёт. Так может, отчётником эту задачу и решать?
да отчет. отчетом то самое просто решить, мы же легких путей не ищем =)
просто у меня отчеты одновременно отоброжаются и в клиенте и через веб. так что отображение в грид получается самым простым решением.
интересно а можно ли сделать как нибуть так:
процедура будет возрощать result в таком виде
~поле1~поле2~поле3~поле4~
~23~23~43~456~
~456~897~12~7~
и чтоб сделать селект в селекте чтоб вытащить даные отсуда ?
Добавлено: 17 май 2007, 15:13
kdv
и чтоб сделать селект в селекте чтоб вытащить даные отсуда ?
www.ibase.ru/ibfaq.htm
Добавлено: 17 май 2007, 16:01
WildSery
Attid писал(а):так что отображение в грид получается самым простым решением.
Вроде отчётники и в веб умеют. Ы?
Добавлено: 17 май 2007, 16:07
Attid
ну значек ~ я там то и увидел =)
и как параметр это использовать тоже пнятно,
даже понятно как в процедуре это порезать если известно кол-во столбцов
а вот как это в селекте сделать, но не увидел я там.
единственое что придумал это не делать разделитили ~
,а определить максимальный размер значения к примеру 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. знаю что изврат, но если можно так добится результата то почему бы и нет =)
Вроде отчётники и в веб умеют. Ы?
да но мысль в том чтоб не менять веб движок на каждый отчет.
Добавлено: 17 май 2007, 16:37
WildSery
Attid писал(а):да но мысль в том чтоб не менять веб движок на каждый отчет.
Тогда выбирай в обычном виде,
SELECT ROW_N, COL_N, DATA, предварительно получив
SELECT DISTINCT COL_N, и сам распределяй, в стринггрид.