Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Другие СУБД [игнор отключен] [закрыт для гостей] / Left join paradox / 8 сообщений из 8, страница 1 из 1
13.11.2007, 12:45
    #34934917
Mandarin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Left join paradox
Привет всем !
народ подскажите плиз как правельно реализовать соединение таблиц типа left join в парадокс ?

чет там как не делел все время получается как будто inner join
...
Рейтинг: 0 / 0
13.11.2007, 12:47
    #34934932
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Left join paradox
Привет, Mandarin!
Ты пишешь:

MandarinM> чет там как не делел все время получается как будто inner joinпокажи, чё делал то?

--
With best regards, Мимопроходящий.

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
13.11.2007, 15:59
    #34935875
Mandarin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Left join paradox
есть три таблицы
1. tmp1 столбцы (d TDate, cod varchar(15))
2. tmp2 столбцы (cod varchar(15), kol numeric, id_nakl integer) - строки накладных
оснавная задача получить сумму приходов товара на определенную дату

3. tmp3 столбцы (id integer, d TDate) - шапки накладных

таблица tmp1 имеет следующий вид

d cod
01.01.2007 1
02.01.2007 1
01.01.2007 2
02.01.2007 2


нужно к этой таблице присоеденить количество товара (приход) которое содержиться в таблице tmp2, чтобы правельно посчитать сумму приходов на дату нужно выбрать все приходы которые <= указанной даты. вот какой запрос у меня получился.

select t1.d,t1.cod,sum(t2.kol) as prix from tmp1 t1
left outer join tmp2 t2 on (t2.cod = t1.cod)
left outer join tmp3 t3 on (t3.id = t2.id_nakl)
where t3.d <= t1.d
...
Рейтинг: 0 / 0
13.11.2007, 16:02
    #34935885
Mandarin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Left join paradox
в моем понимании должно получиться так
если приходов на дату небыло то результат примерно следующий
d cod prix
01.01.2007 1 0 (или null)
02.01.2007 1 5

а запрос выдает только

d cod prix
02.01.2007 1 5

т.е. даты до которых небыло приходов теряются.
...
Рейтинг: 0 / 0
13.11.2007, 16:10
    #34935909
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Left join paradox
Привет, Mandarin!
Ты пишешь:

MandarinM> а запрос выдает только

M> d cod prix
M> 02.01.2007 1 5 естессно.
ибо ты ж в WHERE написал t3.d <= t1.d

перенеси это условие в JOIN
Код: plaintext
1.
2.
3.
4.
5.
select t1.d,
       t1.cod,
       sum(t2.kol) as prix
from tmp1 t1
left outer join tmp2 t2 on (t2.cod = t1.cod)
left outer join tmp3 t3 on (t3.id = t2.id_nakl) AND (t3.d <= t1.d)

--
With best regards, Мимопроходящий.

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
13.11.2007, 16:12
    #34935918
Mandarin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Left join paradox
запрос тогда выполняется не реально долго
...
Рейтинг: 0 / 0
13.11.2007, 16:14
    #34935927
Mandarin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Left join paradox
да и еще.. есть ли какой небудь инструмент для просмотра плана запроса или хотябы какие индексы используются, для LocalSql ?
...
Рейтинг: 0 / 0
15.11.2007, 20:31
    #34943306
Танцор Пасадобля
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Left join paradox
мандарин уйди с парадокса
...
Рейтинг: 0 / 0
Форумы / Другие СУБД [игнор отключен] [закрыт для гостей] / Left join paradox / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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