![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Связывание трех таблиц [D6, IB6.x]
N&N © (2003-04-17 16:51:00)Привет мастера будьте так снисходительны
подскажите особо тупому как составить правильный запрос для соединения трех таблиц. Суть дела такова
в каждой таблице есть одинаковые поля 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
выдает какую-то дребедень
N&N (2003-04-23 07:49:00) [1]Всем большое спасибо за помощь, с вашей помощью заработало
Johnmen (2003-04-18 09:23:00) [2]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
ЮЮ (2003-04-18 08:50:00) [3]Так и должно быть, произведение, однако.
Не знаю как в 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, или всё это объединение - в ХП
N&N (2003-04-18 08:40:00) [4]Дребедень такого вида: когда присоединяю таблицу t3, то все суммы во 2-й колонке увеличиваются на количество раз, равное числу записей для каждой фамилии
Yuraz (2003-04-17 17:19:00) [5]where
a=b
c=d
e=f
типа так, поля свои подставь.
samalex (2003-04-17 17:15:00) [6]после join Table2 забыл t2, Table3 ... t3
Johnmen (2003-04-17 17:07:00) [7]Какую ?