Конференция "Базы" » Группировка записей таблицы в одно поле [D7, IB6.x]
 
  • Михаил (16.05.11 09:26) [0]
    Здравствуйте. Уже 2 дня мучаюсь с составлением запроса.
    Есть такая таблица. Состоит из 3-х полей

    CREATE TABLE ZNAKI (
       ID             INTEGER NOT NULL,
       ZNAKTYPE       VARCHAR(10) NOT NULL,
       NOMER          VARCHAR(10) NOT NULL
    );



    В ней хранятся такие данные

    ID | ZNAKTYPE | NOMER
    ---------------------------------
    1 | Треугольный | 1.1
    2 | Треугольный | 1.2
    3 | Треугольный | 1.3
    4 | Треугольный | 1.4
    5 | Треугольный | 1.5
    6 | Треугольный | 1.6



    Требуется получить такой результат

    ZNAKTYPE  | NOMER
    ----------------------------------------------
    Треугольный | 1.1, 1.2, 1.3, 1.4, 1.5, 1.6



    Как составить запрос? Знаю что нужно использовать GROUP BY, но еще есть какая-то функция для объединения в лист. Нигде не могу найти. Заранее спасибо за помощь!!!
  • в ИБ6 такой функции нету. может в старших версиях и есть.. но точно есть в ФБ с версии 2, list
  • Anatoly Podgoretsky © (16.05.11 10:14) [2]
    > Михаил  (16.05.2011 09:26:00)  [0]

    С чего бы это называть группировкой?
    А сделать можно с помощью хранимой процедуры или курсором.
  • Михаил (16.05.11 10:16) [3]

    > Anatoly Podgoretsky ©   (16.05.11 10:14) [2]


    что значит курсором?
    Приведите пример запроса пожалуйста.
  • Михаил (16.05.11 10:17) [4]
    в MySQL есть хорошая функция GROUP_CONCAT, но к сожалению в InterBase она не работает. Есть ли какой-нибудь аналог?
    Каким способом еще можно решить задачу?
  • Михаил (16.05.11 10:18) [5]

    > С чего бы это называть группировкой?


    ну потому что несколько записей объединяется в одно поле. Ну хорошо объединение назовем. Неправильно выразился
  • Anatoly Podgoretsky © (16.05.11 10:24) [6]

    > Приведите пример запроса пожалуйста.

    Я не работаю с IB уже более 10 лет
  • Anatoly Podgoretsky © (16.05.11 10:24) [7]

    > Михаил   (16.05.11 10:18) [5]
    >
    > > С чего бы это называть группировкой?
    >
    >
    > ну потому что несколько записей объединяется в одно поле.
    >  Ну хорошо объединение назовем. Неправильно выразился

    Это список, ничего общего с группировкой, которая работает с аггрегатами.
  • Anatoly Podgoretsky © (16.05.11 10:26) [8]

    > ну потому что несколько записей объединяется в одно поле.
    >  Ну хорошо объединение назовем. Неправильно выразился

    К объединению это тоже никакого отношения не имеет, при объединение количество записей увеличивается.
    Соединение тоже не проходит, там надо знать четкое количество записей.

    Это список
  • Перейди на FireBird 2.5, там есть LIST
  • Михаил (16.05.11 11:32) [10]
    Спасибо всем за советы!!!
 
Конференция "Базы" » Группировка записей таблицы в одно поле [D7, IB6.x]
Есть новые Нет новых   [134431   +14][b:0][p:0.001]