|
Как запросом вывести всю номенклатуру с количеством ее свойств | ☑ | ||
---|---|---|---|---|
0
Boudybuilder
09.09.13
✎
11:51
|
"ВЫБРАТЬ
| Номенклатура.Ссылка, | ЕСТЬNULL(Значения.КоличествоЗначений, 0) КАК КоличествоЗначений |ИЗ | Справочник.Номенклатура КАК Номенклатура | ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ | ЗначенияСвойствОбъектов.Объект КАК Объект, | КОЛИЧЕСТВО(ЗначенияСвойствОбъектов.Значение) КАК КоличествоЗначений | ИЗ | РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов | | СГРУППИРОВАТЬ ПО | ЗначенияСвойствОбъектов.Объект) КАК Значения | ПО Номенклатура.Ссылка = Значения.Объект.Ссылка" Логика такова , чтобы получить таблицу такого примера : Номенклатура - КоличествоСвойств Ном1 - 0 Ном2 - 5 Ном3 - 45 Тоесть если даже в регистре нету свойств , то чтобы все равно показывало рядышком 0 , а не просто не выбирало номенклатуру как с внутренним соединением. По даному запросу получаю таблицу номенклатуры и таблицу количества из регистра , и если внутренним соединение , то обрабатывается быстренько , но если количества присоединяю вот так как в запросе ко всей номенклатуре , то запрос отрабатывается очень тяжело и долго. Как посоветуете переписать запрос? |
|||
1
mistеr
09.09.13
✎
12:00
|
Избавиться от подзапроса. Соединить, потом группировать.
|
|||
2
Boudybuilder
09.09.13
✎
13:20
|
ВЫБРАТЬ
Номенклатура.Ссылка КАК Ссылка, КОЛИЧЕСТВО(ЕСТЬNULL(ЗначенияСвойствОбъектов.Значение, 0)) КАК Количество ИЗ Справочник.Номенклатура КАК Номенклатура ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов ПО Номенклатура.Ссылка = ЗначенияСвойствОбъектов.Объект.Ссылка СГРУППИРОВАТЬ ПО Номенклатура.Ссылка Та же самая проблема |
|||
3
Boudybuilder
09.09.13
✎
13:20
|
Помогите набросать , вроде такой простой запросик...
|
|||
4
Fragster
модератор
09.09.13
✎
13:29
|
КОЛИЧЕСТВО(ЗначенияСвойствОбъектов.Значение)
|
|||
5
Fragster
модератор
09.09.13
✎
13:30
|
за ЗначенияСвойствОбъектов.Объект.Ссылка по голове
|
|||
6
BAPBAP
09.09.13
✎
13:32
|
Добавь в первом запросе (0) условие:
ЗначенияСвойствОбъектов.Объект ССЫЛКА Справочник.Номенклатура Плюс условие соединения исправь на: ПО Номенклатура = Значения.Объект А то ты делаешь лишнее чтение Ссылки из БД |
|||
7
BAPBAP
09.09.13
✎
13:35
|
Плюс исправь ник На Bodybuilder
|
|||
8
lordmb
09.09.13
✎
13:35
|
(3) лови
ВЫБРАТЬ ЗначенияСвойствОбъектов.Объект, КОЛИЧЕСТВО(ЗначенияСвойствОбъектов.Значение) КАК Значение ПОМЕСТИТЬ ВТ_КолЗначений ИЗ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов ГДЕ ЗначенияСвойствОбъектов.Объект ССЫЛКА Справочник.Номенклатура СГРУППИРОВАТЬ ПО ЗначенияСвойствОбъектов.Объект ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ Номенклатура.Ссылка, ЕСТЬNULL(ВТ_КолЗначений.Значение, 0) КАК КоличествоЗначений ИЗ Справочник.Номенклатура КАК Номенклатура ЛЕВОЕ СОЕДИНЕНИЕ ВТ_КолЗначений КАК ВТ_КолЗначений ПО Номенклатура.Ссылка = ВТ_КолЗначений.Объект |
|||
9
Boudybuilder
09.09.13
✎
23:36
|
(8) Спасибо огромное!!!!
|
|||
10
Boudybuilder
09.09.13
✎
23:37
|
(8) Хотелось бы узнать , чем так облегчило запрос создание в нем временной таблицы , а не на прямую?
|
|||
11
Boudybuilder
17.09.13
✎
00:28
|
Ох уж эти запросы...
К строка ВТТабПоле нужно присоединить найденые записи в регистре по коду. Но если записей нет в регистре то и строки из ВТТабПоле не выводит , а нужно чтобы выводило все записи. Что я там в конце не так соединяю? "ВЫБРАТЬ | ВЫРАЗИТЬ(ТабПоле.Колонка5 КАК СТРОКА(25)) КАК КодНоменклатурыКонтрагента, | ВЫРАЗИТЬ(ТабПоле.Колонка6 КАК СТРОКА(250)) КАК НаименованиеНоменклатурыКонтрагента |ПОМЕСТИТЬ ВТТабПоле |ИЗ | &ТабПоле КАК ТабПоле |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ВТТабПоле.КодНоменклатурыКонтрагента, | ВТТабПоле.НаименованиеНоменклатурыКонтрагента КАК НаименованиеНоменклатурыКонтрагента, | Рег.Контрагент, | Рег.Номенклатура, | Рег.ХарактеристикаНоменклатуры |ИЗ | ВТТабПоле КАК ВТТабПоле | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.НоменклатураКонтрагентов КАК Рег | ПО ВТТабПоле.КодНоменклатурыКонтрагента = Рег.КодНоменклатурыКонтрагента |ГДЕ | Рег.Контрагент = &Контрагент | |УПОРЯДОЧИТЬ ПО | НаименованиеНоменклатурыКонтрагента" |
|||
12
Boudybuilder
17.09.13
✎
00:38
|
Тут левое работает как внутреннее соединение
|
|||
13
Boudybuilder
17.09.13
✎
01:02
|
...
Народ! Помогите! |
|||
14
cw014
17.09.13
✎
06:51
|
Перенеси ГДЕ в условие соединения
|
|||
15
Boudybuilder
17.09.13
✎
10:53
|
Если запросом хочу получить номер строки из ТЗ то получаю ошибку "Тип не может быть выбран в запросе"
Строится эта колонка та ТабПоле.Колонки.Добавить("Номер", ,"Номер").Ширина=5; отладчиком смотрю - Число |
|||
16
Галахад
гуру
17.09.13
✎
10:59
|
Опиши тип.
|
|||
17
Boudybuilder
17.09.13
✎
11:07
|
ТабПоле.Колонки.Добавить("Номер",Новый ОписаниеТипов("Число") ,"Номер").Ширина=5;
Описал . Толку 0 |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |