Текущий архив: 2003.05.15;
Скачать: CL | DM;
Вниз
Связывание трех таблиц Найти похожие ветки
← →
N&N (2003-04-17 16:51) [0]Привет мастера будьте так снисходительны
подскажите особо тупому как составить правильный запрос для соединения трех таблиц. Суть дела такова
в каждой таблице есть одинаковые поля field_id, в t1 первичный ключ, а в t2 и t3 внешние.
Надо сделать запрос чтобы в первой колонке выбирались фамилии из 1-й таблицы, а во второй и третьей суммировались значения из 2-й и 3-й таблиц.
У меня при таком запросе
select t1.FIO, sum(t2.field1), sum(t3. field1)
from table1 t1
join Table2 on t1.field_id=t2.field_id
join Table3 on t1.field_id=t3.field_id
group by t1.FIO
выдает какую-то дребедень
← →
Johnmen (2003-04-17 17:07) [1]Какую ?
← →
samalex (2003-04-17 17:15) [2]после join Table2 забыл t2, Table3 ... t3
← →
Yuraz (2003-04-17 17:19) [3]where
a=b
c=d
e=f
типа так, поля свои подставь.
← →
N&N (2003-04-18 08:40) [4]Дребедень такого вида: когда присоединяю таблицу t3, то все суммы во 2-й колонке увеличиваются на количество раз, равное числу записей для каждой фамилии
← →
ЮЮ (2003-04-18 08:50) [5]Так и должно быть, произведение, однако.
Не знаю как в IB со вложенными запросами, типа
SELECT t1.FIO, sum1, sum2
FROM
Table1 t1
LEFT JOIN (
SELECT field_id, sum(field1) sum1
FROM Table2
GROUP by field_id
) st2 ON t1.field_id = st2.field_id
LEFT JOIN (
SELECT field_id, sum(field1) sum2
FROM Table3
GROUP by field_id
) st3 ON t1.field_id = st3.field_id
Если не поддерживаются, то подзапросы - во View, или всё это объединение - в ХП
← →
Johnmen (2003-04-18 09:23) [6]select
t1.FIO,
(select sum(t2.field1) from Table2 t2
where t1.field_id=t2.field_id) as s1,
(select sum(t3. field1) from Table3 t3
where t1.field_id=t3.field_id) as s2,
from table1 t1
group by t1.FIO
← →
N&N (2003-04-23 07:49) [7]Всем большое спасибо за помощь, с вашей помощью заработало
Страницы: 1 вся ветка
Текущий архив: 2003.05.15;
Скачать: CL | DM;
Память: 0.45 MB
Время: 0.006 c