|   |   | 
| 
 | Помогите с запросом | ☑ | ||
|---|---|---|---|---|
| 0
    
        breezee 23.04.15✎ 11:09 | 
        Есть 1 физическая таблица(табличная часть док-та) в которой 60 позиций номенклатуры и вторая(вирутальная) в которой эти же 60 позиций + 2 которые в первой раны NULL, как мне получить 62 позиции из первой таблицы с нулл парметром (другой парамтр заполнен). Я совсем запутался, получаю либо 106, илбо 108, либо вообще 3728, в зависимости от левого или правого или полного соединения, соединяю по номенклатуре таблицы. Подскажите, пожалуйста, без повторяющихся не работает, потому что там поле неорганиченной длины пишет.     | |||
| 1
    
        Vladal 23.04.15✎ 11:12 | 
        > потому что там поле неорганиченной длины пишет.
 Напиши в запросе ВЫРАЗИТЬ(ПолеНеограниченнойДлины КАК Строка 1000) Должно помочь. | |||
| 2
    
        breezee 23.04.15✎ 11:17 | 
        (1) Да, помогло, спасибо. только теперь 44 и 46 в зависимости от соеднения позиций выводятся, вариант с различными не подходит     | |||
| 3
    
        fishb1 23.04.15✎ 11:21 | 
        Соединением сложно, а объединением с группировкой по номенклатуре и отбором по "Не Номенклатура ЕСТЬ NULL" можно.     | |||
| 4
    
        breezee 23.04.15✎ 11:31 | 
        (1) Еще раз спасибо, это я не правильно написал, там было 46 все же. Сейчас все проверю еще раз     | |||
| 5
    
        Vladal 23.04.15✎ 11:36 | 
        Прими в дар шпаргалку по соединениям. без-воз-мез-дно
 http://s020.radikal.ru/i705/1504/3a/182584658044.png | |||
| 6
    
        breezee 23.04.15✎ 11:42 | 
        (5) Спасибо. Все же у меня 62 записи, я запутался, не одно из таблицы мне не подходит, подскажи что делать пожалуйста.     | |||
| 7
    
        AntonH851 23.04.15✎ 11:47 | 
        (6) Покажи текст запроса     | |||
| 8
    
        breezee 23.04.15✎ 11:50 | 
        (7) ВЫБРАТЬ
 ЗаказПоставщикуТовары.Сумма, ЗаказПоставщикуТовары.Количество, ЗаказПоставщикуТовары.Цена, ЗаказПоставщикуТовары.Номенклатура.Артикул КАК Артикул, ЗаказПоставщикуТовары.Номенклатура, ЗаказПоставщикуТовары.Номенклатура.Родитель КАК НоменклатураРодитель, ЗаказПоставщикуТовары.Ссылка, НоменклатураКонтрагентов.НаименованиеНоменклатурыКонтрагента КАК НаименованиеНоменклатуры ПОМЕСТИТЬ ррр ИЗ Документ.ЗаказПоставщику.Товары КАК ЗаказПоставщикуТовары ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.НоменклатураКонтрагентов КАК НоменклатураКонтрагентов ПО (НоменклатураКонтрагентов.Номенклатура = ЗаказПоставщикуТовары.Номенклатура) ГДЕ ЗаказПоставщикуТовары.Ссылка = &ТекущийДокумент ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ррр.Сумма, ррр.Количество, ррр.Цена, ррр.Артикул, ррр.Номенклатура, ррр.НоменклатураРодитель, ЕСТЬNULL(ЗначенияСвойствОбъектов.Значение, 0) КАК Значение, ЗначенияСвойствОбъектов.Свойство, ррр.Ссылка, ррр.НаименованиеНоменклатуры ПОМЕСТИТЬ ккк ИЗ ррр КАК ррр ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов ПО ррр.Номенклатура = ЗначенияСвойствОбъектов.Объект ГДЕ ЗначенияСвойствОбъектов.Свойство.Наименование = "Наименование (англ)" ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ккк.Свойство, ккк.Значение КАК Значение, ЗаказПоставщикуТовары.Номенклатура, ЗаказПоставщикуТовары.Номенклатура.Артикул, ЗаказПоставщикуТовары.Сумма, ЗаказПоставщикуТовары.Цена, ЗаказПоставщикуТовары.Количество, ккк.НаименованиеНоменклатуры ПОМЕСТИТЬ ПустыеЗначения ИЗ Документ.ЗаказПоставщику.Товары КАК ЗаказПоставщикуТовары ЛЕВОЕ СОЕДИНЕНИЕ ккк КАК ккк ПО ЗаказПоставщикуТовары.Номенклатура = ккк.Номенклатура ГДЕ ЗаказПоставщикуТовары.Ссылка = &ТекущийДокумент ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ПустыеЗначения.Свойство, ПустыеЗначения.Значение КАК Значение, ПустыеЗначения.Номенклатура КАК Номенклатура, ПустыеЗначения.НоменклатураАртикул, ПустыеЗначения.Сумма, ПустыеЗначения.Цена, ПустыеЗначения.Количество, ЕСТЬNULL(ПустыеЗначения.НаименованиеНоменклатуры, ПустыеЗначения.Номенклатура.Наименование) КАК НаименованиеНоменклатуры ИЗ ПустыеЗначения КАК ПустыеЗначения ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.НоменклатураКонтрагентов КАК НоменклатураКонтрагентов ПО ПустыеЗначения.Номенклатура = НоменклатураКонтрагентов.Номенклатура УПОРЯДОЧИТЬ ПО Значение ИТОГИ КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Номенклатура) ПО ОБЩИЕ | |||
| 9
    
        Ёпрст гуру 23.04.15✎ 11:56 | 
        Чего надо то, в целом ?     | |||
| 10
    
        Ёпрст гуру 23.04.15✎ 11:56 | 
        Зачем по сто раз одно и тоже соединять ?     | |||
| 11
    
        Ёпрст гуру 23.04.15✎ 11:58 | 
        ну и это..
 ГДЕ ЗначенияСвойствОбъектов.Свойство.Наименование = "Наименование (англ)" тут ты своим условием левое соединение превратил во внутреннее, если че. | |||
| 12
    
        breezee 23.04.15✎ 11:58 | 
        (10) Надо чтобы подтягивалось для номенклатуры её свойство из регистра свойств и её наименование из регистра наименование поставщика     | |||
| 13
    
        ЧеловекДуши 23.04.15✎ 11:58 | 
        (8) Каша     | |||
| 14
    
        Ёпрст гуру 23.04.15✎ 12:00 | 
        (12) и ?
 Делай всё в одном запросе, нахрена тебе такое количество временных табличек для этого ? | |||
| 15
    
        ЧеловекДуши 23.04.15✎ 12:07 | 
        (12) Используй характеристики     | |||
| 16
    
        ЧеловекДуши 23.04.15✎ 12:08 | ||||
| 17
    
        breezee 23.04.15✎ 13:16 | 
        Все равно ни черта не понимаю. ДА, я идиот дурак и т.д.,
 Вот у меня есть таблица я её делаю левым соединением ко второй - в результирующее таблице будет столько же строчек, с одной таблицей работает(с наименованием номенклатуры), а с другой таблицей (со свойствами объектов) - появляются новые записи Вот запрос ВЫБРАТЬ ЗаказПоставщикуТовары.Номенклатура КАК Номенклатура ИЗ Документ.ЗаказПоставщику.Товары КАК ЗаказПоставщикуТовары ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.НоменклатураКонтрагентов КАК НоменклатураКонтрагентов ПО ЗаказПоставщикуТовары.Номенклатура = НоменклатураКонтрагентов.Номенклатура ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов ПО ЗаказПоставщикуТовары.Номенклатура = ЗначенияСвойствОбъектов.Объект ГДЕ ЗаказПоставщикуТовары.Ссылка = &ТекущийДокумент ИТОГИ КОЛИЧЕСТВО(Номенклатура) ПО ОБЩИЕ | |||
| 18
    
        breezee 23.04.15✎ 13:26 | 
        А если ставлю условие - получается меньше записей. Как правая таблица в левом соединении может менять количество записей?     | |||
| 19
    
        ЧеловекДуши 23.04.15✎ 13:30 | 
        (17) РегистрСведений.ЗначенияСвойствОбъектов
 Как правило: 1. имеет составной тип, так что лучше писать с отбором по типу "ЗначенияСвойствОбъектов.Объект ссылка Справочник.ТвойСправочник" 2. Там Куева туча свойств, а в данном примере ты выбираешь все, а тебе надо все? :) | |||
| 20
    
        ЧеловекДуши 23.04.15✎ 13:30 | 
        (18) Сколько элементов, столько и связей     | |||
| 21
    
        GenAcid 23.04.15✎ 13:31 | 
        (18) легко и непринужденно
 таб 1 элемент1 элемент2 таб2 элемент1 2 элемент1 7 элемент2 9 элемент3 1 как думаешь что будет если выбрать данные из таб1 и соединить их с таб2? | |||
| 22
    
        breezee 23.04.15✎ 13:33 | 
        (19) Спасибо, нет, только 1 св-во, только когда его делаю сильно режется количество номенклатуры, пытался экспеременитровать)
 элемент1 2 элемент1 7 элемент2 9 элемент3 1 Так? Но у меня же существующие значения в первой таблице а не NULL | |||
| 23
    
        breezee 23.04.15✎ 13:36 | 
        (19) Когда ставлю значение номенклатуры - ставится обратно на объект, свойства мне в условиях ставить? Они не будут ограничивать выборку?     | |||
| 24
    
        breezee 23.04.15✎ 13:40 | 
        Да что за фигня? Если я хочу просто выбрать все поля из левой таблицы и найти для них соотвествие в правой то я должен поставить условие и выбрать левое соединение. Где я не прав?     | |||
| 25
    
        breezee 23.04.15✎ 13:43 | 
        Без повторяющихся 65 - это близко но всё же не 62. Кстати, если я буду использовать повторяющиеся и попадется 2 одинаковых записи тч - одна удалится, или это сделано ка раз для случаев как у меня? И все же почему 65?     | |||
| 26
    
        GenAcid 23.04.15✎ 13:45 | 
        Подумай над (19) проблема скорее всего в этом.     | |||
| 27
    
        GenAcid 23.04.15✎ 13:50 | 
        (26) Хотя я твой запрос посмотрел, не должно быть в этом проблемы.     | |||
| 28
    
        breezee 23.04.15✎ 13:55 | 
        Всем спасибо. В общем сделал так - в пером запросе выбрал без посторяющихся и совмести с тч документа - все вышло, хотя я так и не понял что без этого не работало
 Может кому пригодится ВЫБРАТЬ РАЗЛИЧНЫЕ ЗаказПоставщикуТовары.Номенклатура КАК Номенклатура, ЗначенияСвойствОбъектов.Объект, ЗначенияСвойствОбъектов.Значение ПОМЕСТИТЬ ррр ИЗ Документ.ЗаказПоставщику.Товары КАК ЗаказПоставщикуТовары ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.НоменклатураКонтрагентов КАК НоменклатураКонтрагентов ПО ЗаказПоставщикуТовары.Номенклатура = НоменклатураКонтрагентов.Номенклатура ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов ПО ЗаказПоставщикуТовары.Номенклатура = ЗначенияСвойствОбъектов.Объект ГДЕ ЗаказПоставщикуТовары.Ссылка = &ТекущийДокумент И ЗначенияСвойствОбъектов.Свойство.Наименование = "Наименование (англ)" ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ЗаказПоставщикуТовары.Номенклатура КАК Номенклатура, ррр.Номенклатура КАК Номенклатура1, ррр.Значение КАК Значение ИЗ Документ.ЗаказПоставщику.Товары КАК ЗаказПоставщикуТовары ЛЕВОЕ СОЕДИНЕНИЕ ррр КАК ррр ПО (ррр.Номенклатура = ЗаказПоставщикуТовары.Номенклатура) ГДЕ ЗаказПоставщикуТовары.Ссылка = &ТекущийДокумент ИТОГИ КОЛИЧЕСТВО(Номенклатура), КОЛИЧЕСТВО(Номенклатура1), КОЛИЧЕСТВО(Значение) ПО ОБЩИЕ | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |