Форум: "Базы";
Текущий архив: 2003.04.24;
Скачать: [xml.tar.bz2];
ВнизВопрос по созданию НД из трех таблиц Найти похожие ветки
← →
Stelius (2003-04-05 22:23) [0]Мастера, требуется помощь.
Дано:
- таблица фирм (Tbl1): <индекс_фирмы> | <название фирмы>;
- таблица партнеров (Tbl2): <индекс_партнера> | <название_партнера>;
- таблица связи (Tbl3): <индекс_фирмы> | <индекс_партнера>.
Необходимо в одном DBGrid"е отобразить фирмы и соответствующих им партнеров.
Примечание: при использовании следующего запроса:
SELECT Tbl1.*, Tbl2.<название_партнера>
FROM TBL1, TBL2
WHERE Tbl2.<индекс_партнера> in (SELECT <индекс_партнера>
FROM Tbl3
WHERE Tbl3.<индекс_фирмы> = Tbl2.<индекс_фирмы>)
в НД фирма отображается столько раз, сколько у нее партнеров. Нельзя ли как-нибудь сделать, чтобы фирма упоминалась 1 раз, а ее партнеры были перечислены через запятую в одной ячейке.
БД создана в IB, СУБД пишу в D6.
← →
Stelius (2003-04-06 11:56) [1]Хм, либо вопрос задал тупой, либо ни у кого нет никах соображений на этот счет или же это в принципе не реализуемо?
P.S. в последней строчке кода в вопросе вкралась опечатка. Вместо:
WHERE Tbl3.<индекс_фирмы> = Tbl2.<индекс_фирмы>
следует читать:
WHERE Tbl3.<индекс_фирмы> = Tbl1.<индекс_фирмы>
.
← →
sniknik (2003-04-06 18:19) [2]как понимаю нужно перевернуть данные из столбца в строку, т.е.
"Фирма 1"
"Фирма 2"
"Фирма 3"
"Фирма 4"
...
в
"Фирма 1, Фирма 2, Фирма 3, Фирма 4"
так?
было бы на MSSQL сказал бы нужно писать функцию и делать через нее, а с IB незнаю может быть и нельзя.
← →
Наталия (2003-04-07 06:11) [3]Сделай через хранимую процедуру
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2003.04.24;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.007 c