|
Помогите с запросом. | ☑ | ||
---|---|---|---|---|
0
Andreyyy
10.02.12
✎
12:52
|
ТекстЗапроса = "ВЫБРАТЬ
| ВложенныйЗапрос.Автомашина КАК Автомашина, | СУММА(ВложенныйЗапрос.КоличествоКонечныйОстаток) КАК КоличествоКонечныйОстаток, | СУММА(ВложенныйЗапрос.СуммаАмортизации) КАК СуммаАмортизации, | д_ПутевыеЛисты.Ссылка КАК ПутевойЛист |ИЗ | (ВЫБРАТЬ | д_ОстаткиГСМОстаткиИОбороты.Автомашина КАК Автомашина, | д_ОстаткиГСМОстаткиИОбороты.КоличествоКонечныйОстаток КАК КоличествоКонечныйОстаток, | ТаблицаАмортизации.СуммаАмортизации КАК СуммаАмортизации | ИЗ | РегистрНакопления.д_ОстаткиГСМ.ОстаткиИОбороты( | &ДатаНач, | &ДатаКон, | Регистратор, | , | ВидРасхода = ЗНАЧЕНИЕ(Перечисление.д_ВидыРасходов.Запчасти) | ИЛИ ВидРасхода = ЗНАЧЕНИЕ(Перечисление.д_ВидыРасходов.Услуги)) КАК д_ОстаткиГСМОстаткиИОбороты | ПОЛНОЕ СОЕДИНЕНИЕ ТаблицаАмортизации КАК ТаблицаАмортизации | ПО д_ОстаткиГСМОстаткиИОбороты.Автомашина = ТаблицаАмортизации.Автомашина | ГДЕ | д_ОстаткиГСМОстаткиИОбороты.КоличествоКонечныйОстаток > 0 | И д_ОстаткиГСМОстаткиИОбороты.Регистратор.Дата >= &ДатаНач | И д_ОстаткиГСМОстаткиИОбороты.Регистратор.Дата <= &ДатаКон) КАК ВложенныйЗапрос | ПОЛНОЕ СОЕДИНЕНИЕ Документ.д_ПутевыеЛисты КАК д_ПутевыеЛисты | ПО ВложенныйЗапрос.Автомашина = д_ПутевыеЛисты.Автомашина |ГДЕ | д_ПутевыеЛисты.Дата >= &ДатаНач | И д_ПутевыеЛисты.Дата <= &ДатаКон | И д_ПутевыеЛисты.ВидОперации = ЗНАЧЕНИЕ(Перечисление.д_ВидыОперацийПутевыеЛисты.ПринудительноеРаспределение) | |СГРУППИРОВАТЬ ПО | ВложенныйЗапрос.Автомашина, | д_ПутевыеЛисты.Ссылка |ИТОГИ | СУММА(КоличествоКонечныйОстаток), | СУММА(СуммаАмортизации) |ПО | Автомашина, | ПутевойЛист"; Дело в том, что если таблица "д_ПутевыеЛисты" пустая, то запрос пустой, а мне нужно чтобы в таком случае поле "ПутевойЛист" имело значение Null. Что делаю не так, соединение как бы полное и таблица "ВложенныйЗапрос" должна попадать в результат запроса. |
|||
1
depthzer0
10.02.12
✎
12:58
|
а если удалить д_ПутевыеЛисты, то как результат?
|
|||
2
Andreyyy
10.02.12
✎
13:05
|
(1) Все в шоколаде тогда.
|
|||
3
depthzer0
10.02.12
✎
13:08
|
а левое если соединение?
|
|||
4
Griffin
10.02.12
✎
13:11
|
(0) Забейте данные с условиями в отдельные временные таблицы и только потом соединяйте
|
|||
5
Andreyyy
10.02.12
✎
13:15
|
(3) Нельзя ни левое ни правое, в обоих таблицах могут быть (и нужны) значения Null
(4) Можно конечно, но интересно почему так не хочет работать. |
|||
6
depthzer0
10.02.12
✎
13:16
|
(5) можно в качестве проверки сделать?
|
|||
7
Griffin
10.02.12
✎
13:30
|
(0) Попробуйте убрать условие на всю выборку, т.к. если "д_ПутевыеЛисты" пустая, то условие не выполнится
|
|||
8
Andreyyy
10.02.12
✎
13:30
|
(6) С левым соединением тоже пусто, если таблицу "д_ПутевыеЛисты" совсем удаляю, то записи есть.
|
|||
9
depthzer0
10.02.12
✎
13:35
|
условие
ГДЕ | д_ПутевыеЛисты.Дата >= &ДатаНач | И д_ПутевыеЛисты.Дата <= &ДатаКон | И д_ПутевыеЛисты.ВидОперации = ЗНАЧЕНИЕ(Перечисление.д_ВидыОперацийПутевыеЛисты.ПринудительноеРаспределение) нужно перенести в связи |
|||
10
Andreyyy
10.02.12
✎
13:39
|
(9) Спасибо, видимо так и нужно сделать.
У меня уже через вложенный запрос получилось. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |