1с++ прямой запрос, как получить остатки по выбранной группе? #496990


#0 by Absurdus
SELECT    Рег.МОЛ          as [МОЛ          $Справочник.ФизЛица],     Рег.КоличествоНачальныйОстаток as КоличествоНачОст,   Рег.КоличествоПриход as КоличествоПриход,   Рег.КоличествоРасход as КоличествоРасход,   Рег.КоличествоКонечныйОстаток as КоличествоКонОст   FROM    $РегистрОстаткиОбороты.ПартииНаличие(:НачДата,:КонДата~,Неделя,,,,(Номенклатура,МОЛ),(Количество)) as Рег      inner join $Справочник.Номенклатура as Спр on Спр.id = Рег.Номенклатура      inner join $Справочник.Номенклатура as Род on Род.id = Спр.parentid WHERE ((МОЛ = '   3VF   ') or (МОЛ = '   BQV   ') or (МОЛ = '   3VG   ') or (МОЛ = '   3VH   ') or (МОЛ = '   3ZK   ')) and (Рег.Номенклатура in (SELECT Val FROM #ВыбНоменклатура)) Запрос не выполнился! State 42S02, native 208, message [Microsoft][ODBC SQL Server Driver][SQL Server]Invalid object name '#ВыбНоменклатура'. Запрос.УложитьСписокОбъектов13(ВыбНоменклатура, "#Группа"); Почему то не срабатывает... Что не так?
#1 by Fragster
молодец, список объектов кладешь в 1 таблицу, а соединяешь с другой...
#2 by Fragster
*отбираешь
#3 by Absurdus
$РегистрОстаткиОбороты.ПартииНаличие(:НачДата,:КонДата~,Неделя,,,(Номенклатура in (SELECT Val FROM #ВыбНоменклатура)),(Номенклатура,МОЛ),(Количество)) as Рег Переделал так. Та же ошибка..
#4 by DrZombi
Ты в "квериан анализере" пробовал отлаживать запрос ? А так,... строчки:   inner join $Справочник.Номенклатура as Спр on Спр.id = Рег.Номенклатура     inner join $Справочник.Номенклатура as Род on Род.id = Спр.parentid ... Гарантируют что если у элемента не будет группы, то он просто не попадет в запрос :) Так же если в друг не окажется самой номенклатуры, т.е. пустое значение, то тоже не попадет в запрос ;)
#5 by DrZombi
+Строчка: ((МОЛ = '   3VF   ') or (МОЛ = '   BQV   ') or (МОЛ = '   3VG   ') or (МОЛ = '   3VH   ') or (МОЛ = '   3ZK   ')) ... Тоже  не кошерна, если будет слишком много таких лиц, то тоже нечего хорошего ;)
#6 by Absurdus
Кверри с виртуальными таблицами не работает    Все элементы в группах, пустых групп нет. Справочник двухуровневый. 100%
#7 by DrZombi
+Так же: ... Переменная: МОЛ - Существует только в "РегистрОстаткиОбороты" и только там... А ты условия не так поставил.
#8 by DrZombi
Смотри в ... Бывает и палка раз в жизни стреляет ;)
#9 by Absurdus
С таким условием всё вроде как работает
#10 by DrZombi
Ну не совсем ;) Оно не может работать, ты лукавишь ;) Вот если сделаешь так "Рег.МОЛ", то будет
#11 by DrZombi
Зачем тебе в группе "Запрос.УложитьСписокОбъектов13(ВыбНоменклатура, "#Группа"); "??? Там всего лишь "9" символов ;)
#12 by DrZombi
Это тоже так :)
#13 by Absurdus
А в чем проблема?     На форме выбираю группу или элемент номенклатуры.     Запросом надо сделать по ней отбор. Только как... Что-то пока не пойму
#14 by DrZombi
+В группе справочника всего лишь 9 символов
#15 by DrZombi
А в том, что 13 символов это- 1. 4 символа это вид справочника 2. 9 символов это сам ИД номер элемента В разрезе SQL группа и элемент нечем не отличаются, только признаком реквизита "Группа"
#16 by Absurdus
$РегистрОстаткиОбороты.ПартииНаличие(:НачДата,:КонДата~,Неделя,,,(Номенклатура in (SELECT Val FROM #ВыбНоменклатура)),(Номенклатура,МОЛ),(Количество)) as Рег Запрос не выполнился! State 42S02, native 208, message [Microsoft][ODBC SQL Server Driver][SQL Server]Invalid object name '#ВыбНоменклатура'.
#17 by SnarkHunter
Не то переделал... Надо Номенклатура in (SELECT Val FROM #Группа)
#18 by Absurdus
Ага, точно. Спасибо
#19 by DrZombi
Ну он переделал то, но не до конца :)
#20 by Fragster
(МОЛ = '   3VF   ') or (МОЛ = '   BQV   ') or (МОЛ = '   3VG   ') or (МОЛ = '   3VH   ') or (МОЛ = '   3ZK   ')
#21 by Fragster
а про я написал еще в
#22 by Absurdus
А какая разница?
#23 by Fragster
работает быстрее и читается лучше
#24 by Fragster
там, кстати, я = лишнее написал
#25 by Skom
#Группа - Локальная Виртуальная таблица
#26 by Skom
+ ##Группа - ГЛОБАЛЬАНЯ виртуальная таблица вот если так сделаешь то отлаживаться будет. тока прибить ее потом надо
#27 by Кириллка
точно?
#28 by Кириллка
+27 точно работает быстрее?
#29 by Ёпрст
зачем спрашиваешь, если сам знаешь что медленнее.. :)
#30 by Кириллка
глаз зацепился
#31 by Дык ё
не медленнее и не быстрее. так же
#32 by Sadovnikov
Медленнее. В общем случае.
#33 by Sadovnikov
+ Еще и на дидлок нарваться рискуешь.
#34 by Дык ё
стесняюсь спросить - в план запроса смотрел? IN в те же OR разворачивается. в общем случае :-)
#35 by Sadovnikov
Я писал "в общем случае".
#36 by Sadovnikov
+ Стоп... Туплю я.... Фигню понаписал.
#37 by mad hatter
за такие строчки вапще пороть надо!)))))
#38 by Fragster
я бы сказал - не медленнее в общем случае
#39 by Fragster
откуда?
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С