Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / помогите с запросом / 6 сообщений из 6, страница 1 из 1
30.08.2005, 14:09
    #33241121
Perederiy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите с запросом
есть 3 таблицы
t1 - поле id1
родительская для 2 таблиц
t2 id1,id2,summa
t3 id1,id3,summa
во второй хранятся начисления за месяц
в третьей оплата
может быть ситуация - две записи начислений, но одна оплата
делаю
select a.id1,b.summa,c.summa from t1 a LEFT JOIN t2 b on (a.id1=b.id1) LEFT JOIN t3 c on (a.id1=c.id1)
получаем 12 65.43 70
12 12.45 70
те он на каждую строку начислений дублирует сумму оплаты (70), хотя она была всего 1 раз в месяце

помогите
...
Рейтинг: 0 / 0
30.08.2005, 15:19
    #33241344
LeXa NalBat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите с запросом
select a.id1,sum(b.summa),sum(c.summa) from t1 a LEFT JOIN t2 b on (a.id1=b.id1) LEFT JOIN t3 c on (a.id1=c.id1) group by a.id1
...
Рейтинг: 0 / 0
30.08.2005, 15:35
    #33241403
Perederiy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите с запросом
пробовал
возвращает 12 77.88 140
надо 12 77.88 70
...
Рейтинг: 0 / 0
30.08.2005, 16:41
    #33241613
LeXa NalBat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите с запросом
select a.id1,b.summa,c.summa from t1 a
LEFT JOIN ( select id1, sum(summa) as summa from t2 group by id1 ) b on (a.id1=b.id1)
LEFT JOIN ( select id1, sum(summa) as summa from t2 group by id1 ) c on (a.id1=c.id1)
...
Рейтинг: 0 / 0
30.08.2005, 16:52
    #33241665
4321
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите с запросом
LeXa NalBatselect a.id1,b.summa,c.summa from t1 a
LEFT JOIN ( select id1, sum(summa) as summa from t2 group by id1 ) b on (a.id1=b.id1)
LEFT JOIN ( select id1, sum(summa) as summa from t2 group by id1 ) c on (a.id1=c.id1) а так не проще:

select a.id1,
(select sum(summa) as summa from t2 WHERE t2.id1 = a.id1 group by id1 ),
( select id1, sum(summa) as summa from t2 WHERE (t1.id1=a.id1) group by id1 )
from t1 a
...
Рейтинг: 0 / 0
30.08.2005, 16:53
    #33241668
4321
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите с запросом
недочистил:

select a.id1,
(select sum(summa) as summa from t2 WHERE t2.id1 = a.id1 group by id1 ),
(select sum(summa) as summa from t2 WHERE (t1.id1=a.id1) group by id1 )
from t1 a
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / помогите с запросом / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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