| 
    
        
     
     | 
    
  | 
Как запросом вывести всю номенклатуру с количеством ее свойств | ☑ | ||
|---|---|---|---|---|
| 
    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  | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |