![]() |
|
Почему не работает запрос? | ☑ | ||
---|---|---|---|---|
0
atis30
01.11.13
✎
17:49
|
Запрос в динамическом списке.
В таком варианте данные есть : ВЫБРАТЬ ЗаказПокупателя.Ссылка, ЗаказПокупателя.Номер, ЗаказПокупателя.Дата ИЗ Документ.ЗаказПокупателя КАК ЗаказПокупателя ГДЕ ЗаказПокупателя.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания А в таком пусто : ВЫБРАТЬ ЗаказПокупателя.Ссылка, ЗаказПокупателя.Номер, ЗаказПокупателя.Дата, ОтгрузкаЗаказы.Ссылка КАК Отгрузка ИЗ Документ.ЗаказПокупателя КАК ЗаказПокупателя ЛЕВОЕ СОЕДИНЕНИЕ Документ.Отгрузка.Заказы КАК ОтгрузкаЗаказы ПО (ЗаказПокупателя.Ссылка = ОтгрузкаЗаказы.Заказ) И (ОтгрузкаЗаказы.Ссылка.ПометкаУдаления = ЛОЖЬ) ГДЕ ЗаказПокупателя.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания Хотя по идее отличаются одной колонкой. В чем причина? |
|||
1
Beduin
01.11.13
✎
17:55
|
(0) У тебя сначала соединение отработало, а потом отбор по этому соединению.
|
|||
2
atis30
01.11.13
✎
17:58
|
ВЫБРАТЬ
ЗаказПокупателя.Ссылка, ЗаказПокупателя.Номер, ЗаказПокупателя.Дата, ОтгрузкаЗаказы.Ссылка КАК Отгрузка ИЗ Документ.ЗаказПокупателя КАК ЗаказПокупателя ЛЕВОЕ СОЕДИНЕНИЕ Документ.Отгрузка.Заказы КАК ОтгрузкаЗаказы ПО (ЗаказПокупателя.Ссылка = ОтгрузкаЗаказы.Заказ) И (ОтгрузкаЗаказы.Ссылка.ПометкаУдаления = ЛОЖЬ) И (ЗаказПокупателя.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания) Ничего не меняет |
|||
3
Basilio
01.11.13
✎
18:01
|
проверь в консоли
|
|||
4
vvp91
01.11.13
✎
18:01
|
>> (1) В чем причина?
Потому что (ОтгрузкаЗаказы.Ссылка.ПометкаУдаления = ЛОЖЬ) - это внутреннее соединение с ведущей таблицей. После этого заказов, на которые нет ссылок в отгрузке, не будет в результате запросов. Разыменование в запросе (через две точки) - это плохо, поскольку неявно, неуправляемо и неизвестно как будет отработано платформой. Надо писать явно: ВЫБРАТЬ Заказы.Ссылка, Заказы.Номер, Заказы.Дата, Отгрузки.Ссылка КАК Отгрузка ИЗ Документ.РеализацияТоваровУслуг КАК Отгрузки ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг.Товары КАК СтрокиОтгрузок ПО СтрокиОтгрузок.Ссылка = Отгрузки.Ссылка И НЕ Отгрузки.ПометкаУдаления ПРАВОЕ СОЕДИНЕНИЕ Документ.ЗаказКлиента КАК Заказы ПО СтрокиОтгрузок.ЗаказКлиента = Заказы.Ссылка ГДЕ Заказы.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания |
|||
5
vvp91
01.11.13
✎
18:02
|
>> (1) У тебя сначала соединение отработало, а потом отбор по этому соединению.
Это неверно. Сообщение (4) - ответ на (0). |
|||
6
Beduin
01.11.13
✎
18:04
|
(5) Да, точно! Наложение условий на таблицу которая получается. В запросах последовательности нет.
|
|||
7
atis30
01.11.13
✎
18:11
|
Да, вобщем-то так тоже не работает
ВЫБРАТЬ ЗаказПокупателя.Ссылка, ЗаказПокупателя.Номер, ЗаказПокупателя.Дата, ОтгрузкаЗаказы.Ссылка КАК Отгрузка ИЗ Документ.ЗаказПокупателя КАК ЗаказПокупателя ЛЕВОЕ СОЕДИНЕНИЕ Документ.Отгрузка.Заказы КАК ОтгрузкаЗаказы ПО (ЗаказПокупателя.Ссылка = ОтгрузкаЗаказы.Заказ) ГДЕ ЗаказПокупателя.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания |
|||
8
Мимохожий Однако
01.11.13
✎
18:31
|
Вероятно, текст запроса не полный. Что является источником для второй таблицы?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |