powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Помогите с запросом, left join отказывается работать
5 сообщений из 5, страница 1 из 1
Помогите с запросом, left join отказывается работать
    #36158954
xpoft2010
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Помогите с запросом, left join отказывается работать

имеются 2 таблички

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
create table t_operation free(id_oper I, oper c( 10 ))

        insert into t_operation(id_oper, ;
	                               oper ) ;
	values( 1 , ;
	       "Продажи")
	  
	insert into t_operation(id_oper, ;
      	                               oper ) ;
	values( 2 , ;
	       "Возвраты")	 

вторая таблица
Код: plaintext
create table t_outcome_head free(oh_id I, oh_dt_sale T, id_oper I, oh_sum N( 18 , 2 ))

вот собственно запрос
Код: plaintext
1.
2.
3.
4.
5.
select op.id_oper, ;
         op.oper, ;
         sum(oh.oh_sum) ;
from t_operation as op left join t_outcome_head as oh on op.id_oper == oh.id_oper ;
where ttod(oh.oh_dt_sale) == date() 

Необходимо ВСЕГДА получать 2 строчки на выходе, при люом раскладе, хоть не было продаж, хоть не было возвратов не важно, в моем случае как задумано не работает
...
Рейтинг: 0 / 0
Помогите с запросом, left join отказывается работать
    #36158957
xpoft2010
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sorry, в запросе не дописал группировку

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
select op.id_oper, ;
         op.oper, ;
         sum(oh.oh_sum) ;
from t_operation as op left join t_outcome_head as oh on op.id_oper == oh.id_oper ;
where ttod(oh.oh_dt_sale) == date() ;
group by op.id_oper, ; 
            op.oper 

но сути дела это не меняет
...
Рейтинг: 0 / 0
Помогите с запросом, left join отказывается работать
    #36159179
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xpoft2010... Необходимо ВСЕГДА получать 2 строчки на выходе, при люом раскладе, хоть не было продаж, хоть не было возвратов не важно, в моем случае как задумано не работает

Тут FULL JOIN использовать надо
...
Рейтинг: 0 / 0
Помогите с запросом, left join отказывается работать
    #36159188
Al_fa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Условие для oh_dt_sale из where нужно перенести в left join

Вот так будет правильно :

Код: plaintext
1.
2.
3.
4.
5.
6.
select op.id_oper, ;
         op.oper, ;
         sum(oh.oh_sum) ;
from t_operation as op left join t_outcome_head as oh on op.id_oper == oh.id_oper And ttod(oh.oh_dt_sale) == date() ;
group by op.id_oper, ; 
            op.oper 
...
Рейтинг: 0 / 0
Помогите с запросом, left join отказывается работать
    #36159228
xpoft2010
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Al_faУсловие для oh_dt_sale из where нужно перенести в left join

Вот так будет правильно :

Код: plaintext
1.
2.
3.
4.
5.
6.
select op.id_oper, ;
         op.oper, ;
         sum(oh.oh_sum) ;
from t_operation as op left join t_outcome_head as oh on op.id_oper == oh.id_oper And ttod(oh.oh_dt_sale) == date() ;
group by op.id_oper, ; 
            op.oper 


Спаибо огромное, заработало.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Помогите с запросом, left join отказывается работать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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