|
Запросы. Как передать параметр во вложенный запрос? | ☑ | ||
---|---|---|---|---|
0
Sintez123
08.11.13
✎
12:40
|
Есть вложенный запрос, работает крайне медленно. Надеюсь ускорить, если можно передать параметр из запроса во вложенный запрос.
ВЫБРАТЬ ПЕРВЫЕ 100 РМС_СтатусыСтрок.ID КАК ID, РМС_СтатусыСтрок.Статус, РМС_СтатусыСтрок.Номенклатура.РМС_Производитель, РМС_СтатусыСтрок.Номенклатура.Артикул, РМС_СтатусыСтрок.КоличествоОстаток, РМС_СтатусыСтрок.ЗаказПокупателя.Номер, РМС_СтатусыСтрок.ЗаказПокупателя.Дата, РМС_СтатусыСтрок.ЗаказПокупателя.Контрагент.Код, РМС_СтатусыСтрок.Цена, РМС_СтатусыСтрок.ЗаказПоставщику.Номер, РМС_СтатусыСтрок.ЗаказПоставщику.Дата, РМС_СтатусыСтрок.ЗаказПоставщику.Контрагент.РМС_КодВеб, РМС_СтатусыСтрок.ЦенаЗаказПоставщику ИЗ РегистрНакопления.РМС_СтатусыСтрок.Остатки(&КонДата, ) КАК РМС_СтатусыСтрок ЛЕВОЕ СОЕДИНЕНИЕ ( ВЫБРАТЬ НевозможныйПоследний.ID КАК ИД, МАКСИМУМ(НевозможныйПоследний.Регистратор.Дата), СУММА(НевозможныйПоследний.Количество) КАК Количество ИЗ РегистрНакопления.РМС_СтатусыСтрок КАК НевозможныйПоследний ГДЕ НевозможныйПоследний.Статус = &ЗаказНевозможен И НевозможныйПоследний.ID = &ИД /////вот тут надо как то иначе написать СГРУППИРОВАТЬ ПО НевозможныйПоследний.ID ) КАК ВложенныйЗапросБеклоги ПО ВложенныйЗапросБеклоги.ИД = РМС_СтатусыСтрок.ID Я вставил И НевозможныйПоследний.ID = &ИД И передал ИД, но это не решение вовсе. ИД должен не из формы браться, а из запроса, т.е. &ИД должно быть несколько, а не один :) Прошу подскажите как :) |
|||
1
Попытка1С
08.11.13
✎
12:42
|
сформировать ВТ со списком ID?
|
|||
2
Sintez123
08.11.13
✎
12:42
|
Хотя бы просто команду напишите, какой это делается, а я почитаю и разберусь :)
Может тут надо команду ПОМЕСТИТЬ? |
|||
3
Ненавижу 1С
гуру
08.11.13
✎
12:42
|
на словах объясни, что хочешь
|
|||
4
Sintez123
08.11.13
✎
12:43
|
(1) Хм... думаю можно и так. Это я умею :), но пока кажется что это "кривовато", может есть способ красивее?
|
|||
5
Cube
08.11.13
✎
12:43
|
(0) Вместо
И НевозможныйПоследний.ID = &ИД Пиши И НевозможныйПоследний.ID В (ВЫБРАТЬ... и далее текст запроса) |
|||
6
Sintez123
08.11.13
✎
12:45
|
(5) Спасибо. Это получается мне запросы местами поменять придется? Т.е. вложенный станет обычным, а обычный вложенным. Да?
|
|||
7
Sintez123
08.11.13
✎
12:45
|
(5) или это мне надо еще один вложенный запрос написать?
|
|||
8
Ненавижу 1С
гуру
08.11.13
✎
12:46
|
телепатия 80 уровня, ответь на (3)
|
|||
9
Sintez123
08.11.13
✎
12:46
|
(8) я хочу чтобы вложенный запрос не собирал весь регистр, что супер тормозно, а собирал данные только по одному ИД, что гораздо быстрее
|
|||
10
GANR
08.11.13
✎
12:51
|
(8) Я так понимаю, что-то вроде http://www.sql-tutorial.ru/ru/book_cross_apply.html
|
|||
11
Cube
08.11.13
✎
12:56
|
(6) (7) Как-то так:
ВЫБРАТЬ ПартииТоваровНаСкладахОстатки.Номенклатура, ПартииТоваровНаСкладахОстатки.КоличествоОстаток ИЗ РегистрНакопления.ПартииТоваровНаСкладах.Остатки( , Номенклатура В (ВЫБРАТЬ Номенклатура.Ссылка ИЗ Справочник.Номенклатура КАК Номенклатура ГДЕ Номенклатура.Родитель В ИЕРАРХИИ (&Родитель))) КАК ПартииТоваровНаСкладахОстатки |
|||
12
Sintez123
08.11.13
✎
13:01
|
(5) Я правильно понял?
ВЫБРАТЬ ПЕРВЫЕ 2 РМС_СтатусыСтрок.ID КАК ID, РМС_СтатусыСтрок.Статус, РМС_СтатусыСтрок.Номенклатура.РМС_Производитель, РМС_СтатусыСтрок.Номенклатура.Артикул, РМС_СтатусыСтрок.КоличествоОстаток, РМС_СтатусыСтрок.ЗаказПокупателя.Номер, РМС_СтатусыСтрок.ЗаказПокупателя.Дата, РМС_СтатусыСтрок.ЗаказПокупателя.Контрагент.Код, РМС_СтатусыСтрок.Цена, РМС_СтатусыСтрок.ЗаказПоставщику.Номер, РМС_СтатусыСтрок.ЗаказПоставщику.Дата, РМС_СтатусыСтрок.ЗаказПоставщику.Контрагент.РМС_КодВеб, РМС_СтатусыСтрок.ЦенаЗаказПоставщику, ВложенныйЗапросБеклоги.ДатаДок, ВложенныйЗапросБеклоги.Количество ИЗ РегистрНакопления.РМС_СтатусыСтрок.Остатки(&КонДата, ) КАК РМС_СтатусыСтрок ЛЕВОЕ СОЕДИНЕНИЕ ( ВЫБРАТЬ НевозможныйПоследний.ID КАК ИД, МАКСИМУМ(НевозможныйПоследний.Регистратор.Дата) КАК ДатаДок, СУММА(НевозможныйПоследний.Количество) КАК Количество ИЗ РегистрНакопления.РМС_СтатусыСтрок КАК НевозможныйПоследний ГДЕ НевозможныйПоследний.Статус = &ЗаказНевозможен И НевозможныйПоследний.ID В (ВЫБРАТЬ ПЕРВЫЕ 2 Иденты.ID ИЗ РегистрНакопления.РМС_СтатусыСтрок.Остатки(&КонДата, ) КАК Иденты) СГРУППИРОВАТЬ ПО НевозможныйПоследний.ID ) КАК ВложенныйЗапросБеклоги ПО ВложенныйЗапросБеклоги.ИД = РМС_СтатусыСтрок.ID |
|||
13
Sintez123
08.11.13
✎
13:03
|
(5) Это всё равно слишком медленно будет. Вложенный вопрос будет собирать данные по нескольким сотням тысяч идентификаторов. Хотя хотелось бы чтобы собирал по одному только.
Должен быть другой способ. Надо способ передать параметр. |
|||
14
Cube
08.11.13
✎
13:04
|
(12) Да, только лучше не выбирать два раза РегистрНакопления.РМС_СтатусыСтрок.Остатки а заюзать временную таблицу.
|
|||
15
Cube
08.11.13
✎
13:05
|
(13) "Это всё равно слишком медленно будет" не обосновано. Сделай замеры и с цифрами приходи.
|
|||
16
mistеr
08.11.13
✎
13:10
|
(9) Соединяй без вложенного, потом группируй. Будет по ID.
|
|||
17
Sintez123
08.11.13
✎
13:28
|
(16) сейчас попробую
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |