powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Как сделать такую выборку!
13 сообщений из 13, страница 1 из 1
Как сделать такую выборку!
    #32633533
§Oliver
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
есть таблица
Parents(ParentID, ParentName,...)
Details(ParentID, DetailName,...)

что-то вроде этого:

Parents:
1000 Name1
1001 Name2


Details:
1000 |'0001'
1000 |'0002'
1000 |'0003'
1000 |'0004'
(кол-во не больше 4-ох, но может быть и меньше)
1001 |'1000'
1001 |'2000'
1001 |'3000'


Нужно получить следующий набор:

1000 |'0001' | '0002' | '0003' | '0004'
1001 |'1000' | '2000' |'3000' |

Что посоветуете?????
...
Рейтинг: 0 / 0
Как сделать такую выборку!
    #32633560
Фотография fedd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в Хранимой процедуре:

цикл по Parents, и там внутренний цикл по деталям для Парентов. В цикле придется анализировать, какая по счету деталь, чтобы выбрать, в какой поле класть ответ.

еще вариант: на клиенте или в аксессе в помощью перекрестных запросов. тогда количество деталей не будет ограничено четырьмя.

имхо, самый правильный ответ: собирать таблицу на клиенте
...
Рейтинг: 0 / 0
Как сделать такую выборку!
    #32633645
Лентяй
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А еще, насколько мне известно, в YA есть агрегатная функция LIST,
которая как раз то, что тебе надо делает.
Удачи.
...
Рейтинг: 0 / 0
Как сделать такую выборку!
    #32633684
Фотография Johnmen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>fedd

Не думаю, что ХП поможет напрямую. Т.к. заранее неизвестно кол-во вых.параметров...
...
Рейтинг: 0 / 0
Как сделать такую выборку!
    #32633707
Фотография fedd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Johnmen>fedd

Не думаю, что ХП поможет напрямую. Т.к. заранее неизвестно кол-во вых.параметров...известно: §Oliverкол-во не больше 4-ох, но может быть и меньше
...
Рейтинг: 0 / 0
Как сделать такую выборку!
    #32633716
Фотография fedd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛентяйА еще, насколько мне известно, в YA есть агрегатная функция LIST,
которая как раз то, что тебе надо делает.
Удачи.

Прикольная функция. Текст конкатенирует? В детстве всегда о ней мечтал, пока не стал совсем реляционным ;)

Если конкатенирует, не совсем то - человеку нужно в разных столбцах, насколько я понял
...
Рейтинг: 0 / 0
Как сделать такую выборку!
    #32633740
Лентяй
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛентяйА еще, насколько мне известно, в YA есть агрегатная функция LIST,
которая как раз то, что тебе надо делает.

Хотя я может вопрос не так понял. У тебя знак | столбцы в результирующей выборке разделяет? Если да, то переменное кол-во столбцов в результате выборки невозможно в принципе. Разве что Null-ом заполнять. Тогда действительно, либо через SP, либо на клиенте собирать...
...
Рейтинг: 0 / 0
Как сделать такую выборку!
    #32633758
Фотография Johnmen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>fedd

Да. Я слишком обобщил...
...
Рейтинг: 0 / 0
Как сделать такую выборку!
    #32633992
§Oliver
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вообще-то задача такая:
по гос. бютжету (Украина) есть програмка формирования платежек с последующим експортом данных.
структура таблицы (файла dbf) в кратце такая:

номер платежки
дата
...
данные получателя и плательщика и всякие там МФО и т.д.
...
сума

KEKV1
сумаKEKV1
KEKV2
сумаKEKV2
KEKV3
сумаKEKV3
KEKV4
сумаKEKV4
(рассшифровка по КВКВ)


так вот. а в нашей БД КВКВ-ки хранятня в подчиненой таблице + их может быть понятно что несколько + по разным счетам.
...
Рейтинг: 0 / 0
Как сделать такую выборку!
    #32633999
vis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
§OliverВообще-то задача такая:
по гос. бютжету (Украина) есть програмка формирования платежек с последующим експортом данных.
структура таблицы (файла dbf) в кратце такая:

...

так вот. а в нашей БД КВКВ-ки хранятня в подчиненой таблице + их может быть понятно что несколько + по разным счетам.

вах! коллега! (бымший :)
что-то не совсем понятно... а в чём, собсно, проблема?
...
Рейтинг: 0 / 0
Как сделать такую выборку!
    #32634022
§Oliver
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
то vis : не..я не в казначействе работаю
проблема?!
1. :)) да вроде уже как-бы ХР пишу :)) (а вообще-то хотелось только запросом).
2. блин, и кто это, интересно, проги пишет нашему государству!...детсво какое-то, извращение!!!...Видели бы Вы как у меня прога 1ДР(квартальный отчет в налоговую) подвисает на 4000 записей!!!...Это ж ужас какой-то )
...
Рейтинг: 0 / 0
Как сделать такую выборку!
    #32634398
Лентяй
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
§Oliverто vis : не..я не в казначействе работаю
проблема?!
1. :)) да вроде уже как-бы ХР пишу :)) (а вообще-то хотелось только запросом).

Да можно и запросом:
Код: plaintext
1.
2.
3.
4.
5.
6.
select p.name,
         (select first  1  from Details where ParentId = P.ParentId),
         (select first  1  skip  1  from Details where ParentId = P.ParentId),
         (select first  1  skip  2  from Details where ParentId = P.ParentId),
         (select first  1  skip  3  from Details where ParentId = P.ParentId)
From Parent P
...
Рейтинг: 0 / 0
Как сделать такую выборку!
    #32634403
Лентяй
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не проснулся еще, вот так вроде:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
select P.name,
         (select first  1  name from Details where ParentId = P.ParentId),
         (select first  1  skip  1  name from Details where ParentId = P.ParentId),
         (select first  1  skip  2  name from Details where ParentId = P.ParentId),
         (select first  1  skip  3  name from Details where ParentId = P.ParentId)
From Parent P


...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Как сделать такую выборку!
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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