![]() |
![]() |
![]() |
|
Выборка из результата запроса | ☑ | ||
---|---|---|---|---|
0
kollers_vrn
16.04.15
✎
17:54
|
Народ помогите пожалуйста что сделано не так.Нужно выводить ВСЕ автоматы которые есть у оператора, а выводит только те по которым прошла инвентаризация
ВЫБРАТЬ ОбслуживаниеАвтоматов.Автомат КАК Автомат, ИнвентаризацияТоваровНаСкладе.Ссылка, ВложенныйЗапрос.Сумма, ВложенныйЗапрос.СуммаУчет, ИнвентаризацияТоваровНаСкладе.Склад.Автомат.Наименование ИЗ РегистрСведений.ОбслуживаниеАвтоматов КАК ОбслуживаниеАвтоматов ЛЕВОЕ СОЕДИНЕНИЕ Документ.ИнвентаризацияТоваровНаСкладе КАК ИнвентаризацияТоваровНаСкладе ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ СУММА(ИнвентаризацияТоваровНаСкладеТовары.Сумма) КАК Сумма, СУММА(ИнвентаризацияТоваровНаСкладеТовары.СуммаУчет) КАК СуммаУчет, ИнвентаризацияТоваровНаСкладеТовары.Ссылка КАК Ссылка ИЗ Документ.ИнвентаризацияТоваровНаСкладе.Товары КАК ИнвентаризацияТоваровНаСкладеТовары СГРУППИРОВАТЬ ПО ИнвентаризацияТоваровНаСкладеТовары.Ссылка) КАК ВложенныйЗапрос ПО ИнвентаризацияТоваровНаСкладе.Товары.Ссылка = ВложенныйЗапрос.Ссылка ПО ОбслуживаниеАвтоматов.Автомат.СкладАвтомата.Ссылка = ИнвентаризацияТоваровНаСкладе.Склад.Ссылка ГДЕ ИнвентаризацияТоваровНаСкладе.Дата >= &ДатаН И ИнвентаризацияТоваровНаСкладе.Дата <= &ДатаК И ИнвентаризацияТоваровНаСкладе.Склад.Автомат.ПроцессАвтомата.Ответственный = &Оператор СГРУППИРОВАТЬ ПО ОбслуживаниеАвтоматов.Автомат ИнвентаризацияТоваровНаСкладе.Ссылка, ВложенныйЗапрос.Сумма, ВложенныйЗапрос.СуммаУчет, ИнвентаризацияТоваровНаСкладе.Склад.Автомат.Наименование |
|||
1
Dmitrii
гуру
16.04.15
✎
17:59
|
(0) Ну тык ты ж в условиях (в ГДЕ) написал, сто тебе непременно нужно чтобы были реквизиты (Дата, Ответсвенный) из таблицы ИнвентаризацияТоваровНаСкладе.
|
|||
2
Dmitrii
гуру
16.04.15
✎
18:00
|
(1) либо переноси эту ересь в условия соединения, либо предусмотри НЕ ЕСТЬ NULL
|
|||
3
kollers_vrn
16.04.15
✎
18:02
|
не пиняйте сильно, я новичок... там я пытаюсь прописать условия которые мне нужно выводить инвентаризацию (т.е. все автоматы у которых была инвентаризация в периоде у данного оператора
|
|||
4
Dmitrii
гуру
16.04.15
✎
18:06
|
(3) Ты уж определиь чего ты хочешь. А то в (0) ты пишешь: "Нужно выводить ВСЕ автоматы", в (3): "автоматы у которых была инвентаризация"
Так все или "только те по которым прошла инвентаризация" (цитата твоя)? |
|||
5
kollers_vrn
16.04.15
✎
18:10
|
1) нужно выводить ВСЕ автоматы которые есть у оператора 2)если прошел инвентаризацию тогда заполнили ИнвентаризацияТоваровНаСкладе.Ссылка, а если нет документа тогда все равно вывели строку с автоматом, но с пустой строчкой по инвентаризации... вот и как так сделать?
|
|||
6
Salimbek
16.04.15
✎
18:14
|
(5) Поменяй слово "ГДЕ" на "И"
З.Ы. Меня одного бесит сначала описание соединяемых таблиц (внутреннее соединение... левое соединение...) а потом куча соединений внизу (по... по...), разбирайся потом - куда чего соединено... |
|||
7
sapphire
17.04.15
✎
07:36
|
(6) Именно
(5),(0) ВЫБРАТЬ ОбслуживаниеАвтоматов.Автомат КАК Автомат, ИнвентаризацияТоваровНаСкладе.Ссылка, ВложенныйЗапрос.Сумма, ВложенныйЗапрос.СуммаУчет, ИнвентаризацияТоваровНаСкладе.Склад.Автомат.Наименование ИЗ РегистрСведений.ОбслуживаниеАвтоматов КАК ОбслуживаниеАвтоматов ЛЕВОЕ СОЕДИНЕНИЕ Документ.ИнвентаризацияТоваровНаСкладе КАК ИнвентаризацияТоваровНаСкладе ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ СУММА(ИнвентаризацияТоваровНаСкладеТовары.Сумма) КАК Сумма, СУММА(ИнвентаризацияТоваровНаСкладеТовары.СуммаУчет) КАК СуммаУчет, ИнвентаризацияТоваровНаСкладеТовары.Ссылка КАК Ссылка ИЗ Документ.ИнвентаризацияТоваровНаСкладе.Товары КАК ИнвентаризацияТоваровНаСкладеТовары СГРУППИРОВАТЬ ПО ИнвентаризацияТоваровНаСкладеТовары.Ссылка) КАК ВложенныйЗапрос ПО ИнвентаризацияТоваровНаСкладе.Товары.Ссылка = ВложенныйЗапрос.Ссылка ПО ОбслуживаниеАвтоматов.Автомат.СкладАвтомата.Ссылка = ИнвентаризацияТоваровНаСкладе.Склад.Ссылка И //ГДЕ ИнвентаризацияТоваровНаСкладе.Дата >= &ДатаН И ИнвентаризацияТоваровНаСкладе.Дата <= &ДатаК И ИнвентаризацияТоваровНаСкладе.Склад.Автомат.ПроцессАвтомата.Ответственный = &Оператор СГРУППИРОВАТЬ ПО ОбслуживаниеАвтоматов.Автомат ИнвентаризацияТоваровНаСкладе.Ссылка, ВложенныйЗапрос.Сумма, ВложенныйЗапрос.СуммаУчет, ИнвентаризацияТоваровНаСкладе.Склад.Автомат.Наименование |
|||
8
kollers_vrn
17.04.15
✎
12:55
|
и так поставил все равно не выводит все которые закреплены за оператором (выводит только те по которых прошла инвентаризация)
ВЫБРАТЬ ОбслужАвтоматы.Автомат.Автомат КАК Автомат, ИнвентаризацияТоваровНаСкладе.Ссылка ИЗ РегистрСведений.ОбслуживаниеАвтоматов.СрезПоследних(&ДатаКонца, ) КАК ОбслужАвтоматы ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ИнвентаризацияТоваровНаСкладе КАК ИнвентаризацияТоваровНаСкладе ПО ОбслужАвтоматы.Автомат.СкладАвтомата = ИнвентаризацияТоваровНаСкладе.Склад И (ОбслужАвтоматы.Пользователь = &Оператор) И ((НЕ ОбслужАвтоматы.Автомат.Автомат ЕСТЬ NULL )) И (ИнвентаризацияТоваровНаСкладе.Склад.Автомат.ПроцессАвтомата.Ответственный = &Оператор) И (ОбслужАвтоматы.Автомат.Ответственный = &Оператор) СГРУППИРОВАТЬ ПО ОбслужАвтоматы.Автомат.Автомат, ИнвентаризацияТоваровНаСкладе.Ссылка УПОРЯДОЧИТЬ ПО Автомат |
|||
9
kollers_vrn
17.04.15
✎
15:57
|
о допетрил, другой вопрос как можно оптимизировать данный запрос по быстродействию
ВЫБРАТЬ ОбслужАвтоматы.Автомат.Автомат КАК Автомат, ИнвентаризацияТоваровНаСкладе.Ссылка, ВложенныйЗапрос.Сумма, ВложенныйЗапрос.СуммаУчет ИЗ РегистрСведений.ОбслуживаниеАвтоматов.СрезПоследних(&ДатаКонца, ) КАК ОбслужАвтоматы ЛЕВОЕ СОЕДИНЕНИЕ Документ.ИнвентаризацияТоваровНаСкладе КАК ИнвентаризацияТоваровНаСкладе ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ СУММА(ИнвентаризацияТоваровНаСкладеТовары.Сумма) КАК Сумма, СУММА(ИнвентаризацияТоваровНаСкладеТовары.СуммаУчет) КАК СуммаУчет, ИнвентаризацияТоваровНаСкладеТовары.Ссылка КАК Ссылка ИЗ Документ.ИнвентаризацияТоваровНаСкладе.Товары КАК ИнвентаризацияТоваровНаСкладеТовары СГРУППИРОВАТЬ ПО ИнвентаризацияТоваровНаСкладеТовары.Ссылка) КАК ВложенныйЗапрос ПО ИнвентаризацияТоваровНаСкладе.Товары.Ссылка = ВложенныйЗапрос.Ссылка ПО ОбслужАвтоматы.Автомат.СкладАвтомата = ИнвентаризацияТоваровНаСкладе.Склад И ИнвентаризацияТоваровНаСкладе.Дата >= &ДатаН И ИнвентаризацияТоваровНаСкладе.Дата <= &ДатаК ГДЕ ОбслужАвтоматы.Автомат.Ответственный = &Оператор |
|||
10
sapphire
17.04.15
✎
16:29
|
(9) Убрать многоточия
|
|||
11
asady
17.04.15
✎
16:30
|
(9)
ПО ИнвентаризацияТоваровНаСкладе.Товары.Ссылка = ВложенныйЗапрос.Ссылка тут косяк надо ПО ИнвентаризацияТоваровНаСкладе.Ссылка = ВложенныйЗапрос.Ссылка |
|||
12
kollers_vrn
17.04.15
✎
16:38
|
(11) asady, огромное спасибо, все заработало, а можно объяснить на пальцах где моя ошибка? я же ссылаюсь на те товары которые в вложеном
|
|||
13
Salimbek
17.04.15
✎
16:55
|
(12) А какая алгоритимческая разница, если ты ссылаешься на Документ через его ссылку, или на его Табличную часть, из которой берешь ту же самую ссылку?
Второе просто тяжелее для СКЛ-а, т.к. доп. таблицу с большим количеством строк надо соединять. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |