|   |   | 
| 
 | Помогите с запросом! | ☑ | ||
|---|---|---|---|---|
| 0
    
        Мисти 15.08.18✎ 16:20 | 
        Суть такая. из регистра берутся данные по площади - по договору и по доп. соглашению. При этом доп. соглашения может не быть вовсе! У меня при этом получается, что по доп. соглашению площадь 0. А мне нужно как-то отделить случаи, когда доп. соглашение есть и по нему 0 от случая, когда его нет вовсе. Это же по смыслу противоположно!!!     | |||
| 1
    
        Buster007 15.08.18✎ 16:21 | 
        свой вариант?     | |||
| 2
    
        Buster007 15.08.18✎ 16:21 | 
        ЕСТЬ NULL тебе может помочь, думаю     | |||
| 3
    
        XLife 15.08.18✎ 16:22 | 
        есть борщ и нет борща...     | |||
| 4
    
        Мисти 15.08.18✎ 16:22 | 
        ВЫБРАТЬ
 АР_СтавкиСрезПоследних.Договор КАК Договор, АР_СтавкиСрезПоследних.Услуга КАК Услуга, АР_СтавкиСрезПоследних.ОбъектАренды КАК ОбъектАренды, АР_СтавкиСрезПоследних.Площадь КАК ПлощадьПоЗаключению, 0 КАК ПлощадьПоДопСоглашению, АР_СтавкиСрезПоследних.Регистратор КАК Регистратор ПОМЕСТИТЬ ВТ_ДокументЗаключения ИЗ РегистрСведений.АР_Ставки.СрезПоследних({(&КонецПериода)}, Регистратор ССЫЛКА Документ.АР_ЗаключениеДоговораАренды) КАК АР_СтавкиСрезПоследних ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ АР_СтавкиСрезПоследних.Договор, АР_СтавкиСрезПоследних.Услуга, АР_СтавкиСрезПоследних.ОбъектАренды, 0, АР_СтавкиСрезПоследних.Площадь, АР_СтавкиСрезПоследних.Регистратор ИЗ РегистрСведений.АР_Ставки.СрезПоследних({(&КонецПериода)}, Регистратор ССЫЛКА Документ.АР_ДополнительноеСоглашение) КАК АР_СтавкиСрезПоследних ; Начало там такое | |||
| 5
    
        olegves 15.08.18✎ 16:23 | 
        (0) Соглашения нет, когда ПолеСоглашения IS NULL при левом соединении договора с допсоглашением     | |||
| 6
    
        Fedor-1971 15.08.18✎ 16:24 | 
        0 КАК ПлощадьПоДопСоглашению = поставь не 0, а -1     | |||
| 7
    
        Мисти 15.08.18✎ 16:24 | 
        (5) "нэ умэю" как говорила моя двухлетняя племянница     | |||
| 8
    
        XLife 15.08.18✎ 16:26 | 
        (7) >"нэ умэю"
 грузинка? | |||
| 9
    
        Мисти 15.08.18✎ 16:27 | 
        нет, просто маленькая была и говорила только те слова, которые получались четко. А что не получалось - не говорила вовсе.     | |||
| 10
    
        Fedor-1971 15.08.18✎ 16:33 | 
        (9) Не соскакивай, чем -1 для отличия не нравится? 
 Дальше при перебое результата ПлощадьПоДопам = 1;, а в цикле ПлощадьПоДопам += Выборка.ПлощадьПоДопСоглашению | |||
| 11
    
        Мисти 15.08.18✎ 16:34 | 
        Там нет никаких циклов, там скд!
 Мне как в (5) надо дорисовать! Кто-нибудь может мой запрос дорисовать? | |||
| 12
    
        Fedor-1971 15.08.18✎ 16:46 | 
        (11) Например так:
 ВЫБРАТЬ АР_СтавкиСрезПоследних.Договор КАК Договор, АР_СтавкиСрезПоследних.Услуга КАК Услуга, АР_СтавкиСрезПоследних.ОбъектАренды КАК ОбъектАренды, АР_СтавкиСрезПоследних.Площадь КАК ПлощадьПоЗаключению, isNull(АР_СтавкиДоп.Площадь, "Так нету допа") КАК ПлощадьПоДопСоглашению, АР_СтавкиСрезПоследних.Регистратор КАК Регистратор ПОМЕСТИТЬ ВТ_ДокументЗаключения ИЗ РегистрСведений.АР_Ставки.СрезПоследних({(&КонецПериода)}, Регистратор ССЫЛКА Документ.АР_ЗаключениеДоговораАренды) КАК АР_СтавкиСрезПоследних Левое соединение РегистрСведений.АР_Ставки.СрезПоследних({(&КонецПериода)}, Регистратор ССЫЛКА Документ.АР_ДополнительноеСоглашение) КАК АР_СтавкиДоп ПО АР_СтавкиСрезПоследних.Договор = АР_СтавкиДоп.Договор, АР_СтавкиСрезПоследних.Услуга = АР_СтавкиДоп.Услуга, АР_СтавкиСрезПоследних.ОбъектАренды = АР_СтавкиДоп.ОбъектАренды С тебя 200 рупий на благотворительность, отдашь кому посчитаешь нужным | |||
| 13
    
        Сергиус 15.08.18✎ 17:21 | 
        (0)Добавь новое поле, по которому будешь определять признак. Если соединение с доп.соглашением NULL, оно ИСТИНА, иначе всегда ЛОЖЬ     | |||
| 14
    
        Мисти 15.08.18✎ 17:52 | 
        (12) Так не работает.
 В (13) описано (12), и я теоретически это понимаю, но никак не могу изобразить. | |||
| 15
    
        Fedor-1971 15.08.18✎ 17:59 | 
        (14) что не работает? проверь консолью запросов
 И смотри на условия связи АР_СтавкиСрезПоследних.Договор = АР_СтавкиДоп.Договор, И АР_СтавкиСрезПоследних.Услуга = АР_СтавкиДоп.Услуга, И АР_СтавкиСрезПоследних.ОбъектАренды = АР_СтавкиДоп.ОбъектАренды Возможно нужно добавить И НЕ АР_СтавкиСрезПоследних.Регистратор= АР_СтавкиДоп.Регистратор т.е. к себе договор не является допом | |||
| 16
    
        Мисти 15.08.18✎ 18:01 | 
        Запрос кривой получается, я не понимаю, как поправить.     | |||
| 17
    
        Fedor-1971 15.08.18✎ 18:05 | 
        (16) что именно кривое? показывай как поправила     | |||
| 18
    
        Мисти 15.08.18✎ 18:07 | 
        Предположим, первая таблица у меня Д1 У1 100
 д2 у2 50 А вторая д2 У2 10 Их объединение дает Д1 У1 100 0 д2 У2 50 10 Мне бы еще признак1 нулл признак2 Истина Как это сделать? | |||
| 19
    
        Мисти 15.08.18✎ 18:08 | 
        Как-как - вставила кусочек выше в свой запрос.     | |||
| 20
    
        Мисти 15.08.18✎ 18:09 | 
        Не, ну явно не так как написано, потому что "поместить" относится к 1 запросу, а доп.соглашение - ко второму     | |||
| 21
    
        Fedor-1971 15.08.18✎ 18:21 | 
        Гонишь.
 Если вставить просто так вот это: ПО АР_СтавкиСрезПоследних.Договор = АР_СтавкиДоп.Договор, АР_СтавкиСрезПоследних.Услуга = АР_СтавкиДоп.Услуга, АР_СтавкиСрезПоследних.ОбъектАренды = АР_СтавкиДоп.ОбъектАренды Будет ошибка, т.к. нет "И" Вот это: isNull(АР_СтавкиДоп.Площадь, "Так нету допа") КАК ПлощадьПоДопСоглашению, К твоему 100, Так нету допа Давай Зяма, показывай запрос | |||
| 22
    
        Мисти 15.08.18✎ 18:22 | 
        Я тыщу переведу на благотворительность, только напиши мне этот кусочек полностью!     | |||
| 23
    
        Fedor-1971 15.08.18✎ 18:23 | 
        (18) 
 Выбор Когда АР_СтавкиДоп.Площадь есть Null тогда Истина Иначе Ложь Конец Как ПризнакНаличияДопов Небось isNull(АР_СтавкиДоп.Площадь, 0) так сделала? Результат покажи, блин. Домой пора идти. | |||
| 24
    
        Fedor-1971 15.08.18✎ 18:24 | 
        Ломается как булка     | |||
| 25
    
        Fedor-1971 15.08.18✎ 18:33 | 
        Если что, завтра подмогну. Про тышчу - сама напросилась.     | |||
| 26
    
        Мисти 16.08.18✎ 14:42 | 
        ВЫБРАТЬ
 АР_СтавкиСрезПоследних.Услуга КАК Услуга, АР_СтавкиСрезПоследних.ОбъектАренды КАК ОбъектАренды, АР_СтавкиСрезПоследних.Договор КАК Договор, АР_СтавкиСрезПоследних.Площадь КАК Площадь ПОМЕСТИТЬ ОбъектыСДопСоглашениями ИЗ РегистрСведений.АР_Ставки.СрезПоследних(, Регистратор ССЫЛКА Документ.АР_ДополнительноеСоглашение) КАК АР_СтавкиСрезПоследних ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ АР_СтавкиСрезПоследних.Договор КАК Договор, АР_СтавкиСрезПоследних.Услуга КАК Услуга, АР_СтавкиСрезПоследних.ОбъектАренды КАК ОбъектАренды, АР_СтавкиСрезПоследних.Площадь КАК ПлощадьПоЗаключению, 0 КАК ПлощадьПоДопСоглашению, АР_СтавкиСрезПоследних.Регистратор КАК Регистратор, NULL КАК ПризнакДопа ПОМЕСТИТЬ ВТ_ДокументЗаключения ИЗ РегистрСведений.АР_Ставки.СрезПоследних({(&КонецПериода)}, Регистратор ССЫЛКА Документ.АР_ЗаключениеДоговораАренды) КАК АР_СтавкиСрезПоследних ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ АР_СтавкиСрезПоследних.Договор, АР_СтавкиСрезПоследних.Услуга, АР_СтавкиСрезПоследних.ОбъектАренды, 0, АР_СтавкиСрезПоследних.Площадь, АР_СтавкиСрезПоследних.Регистратор, ВЫБОР КОГДА АР_СтавкиСрезПоследних.Площадь ЕСТЬ NULL ТОГДА ИСТИНА ИНАЧЕ ЛОЖЬ КОНЕЦ ИЗ РегистрСведений.АР_Ставки.СрезПоследних({(&КонецПериода)}, Регистратор ССЫЛКА Документ.АР_ДополнительноеСоглашение) КАК АР_СтавкиСрезПоследних ЛЕВОЕ СОЕДИНЕНИЕ ОбъектыСДопСоглашениями КАК ОбъектыСДопСоглашениями ПО АР_СтавкиСрезПоследних.Услуга = ОбъектыСДопСоглашениями.Услуга И АР_СтавкиСрезПоследних.ОбъектАренды = ОбъектыСДопСоглашениями.ОбъектАренды И АР_СтавкиСрезПоследних.Договор = ОбъектыСДопСоглашениями.Договор ; | |||
| 27
    
        Мисти 16.08.18✎ 14:44 | 
        Пока получилось ровно не то, что нужно.
 В запросе не произошло объединение по площадям - отдельно идут по заключению, отдельно по доп. соглашению, ну и НЕТ стоит как раз у доп. соглашений | |||
| 28
    
        Мисти 16.08.18✎ 15:04 | 
        Ну, т.е. у меня во втором запросе, где "объединить" на 1 поле больше - "есть ли доп", поэтому с первым и не объединяется.     | |||
| 29
    
        Fedor-1971 16.08.18✎ 15:06 | 
        (27) мощно, я думаю, не твоё это писать запросы. От слова совсем. 
 Окажи себе благотворительную помощь на выделенные 1000 руб. купи себе книжку, ЛЮБУЮ художественную книжку, и читай её до дыр. Запросы оставь в покое. Ты хоть мозг включала или, так на автопилоте "Авось что-то исправлю и может быть заработает"? Тебе написали целый запрос, повторю в твоём варианте: 
 | |||
| 30
    
        Fedor-1971 16.08.18✎ 15:15 | 
        29+ не надо ничего "объединить все", левое соединение к твоему основному договору прилепит ВСЕ доп соглашения и поля
 АР_СтавкиСрезПоследних.Договор КАК Договор, АР_СтавкиСрезПоследних.Услуга КАК Услуга, АР_СтавкиСрезПоследних.ОбъектАренды КАК ОбъектАренды, АР_СтавкиСрезПоследних.Площадь КАК ПлощадьПоЗаключению, АР_СтавкиСрезПоследних.Регистратор КАК Регистратор, в выборке будут одинаковыми (!!!), т.к. взяты из основного договора, а ПлощадьПоДопСоглашению разные, согласно каждого доп.соглашения. Если допа 2, то и строки в результирующей выборке будет 2 (это для информации, вдруг что-то пойдёт не так) | |||
| 31
    
        Мисти 16.08.18✎ 15:19 | 
        У меня на запросы мозг не включается. У меня географический кретинизм, а это из той же области.     | |||
| 32
    
        Мимохожий Однако 16.08.18✎ 15:25 | 
        Дождись пятницы. Помогут.     | |||
| 33
    
        Fedor-1971 16.08.18✎ 15:26 | 
        (31) Не путай "Не хочу что-то понимать" и "Лень вникнуть и  сделать, на форуме напишут" с проблемами в ориентировании на местности.
 Запрос замечательно тестится в консоли запросов и сразу видно какие данные выбрались и как соединились, нет тут географии, а полный набор данных прямо перед глазами, даже головой вертеть не надо. | |||
| 34
    
        Fedor-1971 16.08.18✎ 15:27 | 
        (32) к стати, как вариант, но только для понедельника - вторника.     | |||
| 35
    
        Мисти 16.08.18✎ 15:33 | 
        Вот я и вижу, что не то получается.     | |||
| 36
    
        Мисти 16.08.18✎ 15:34 | 
        И это еще не так просто посмотреть! 48 тыщ строк.     | |||
| 37
    
        Fedor-1971 16.08.18✎ 15:49 | 
        (36) при минимальном желании находим договор с допами и в консоли запросов
 Где АР_СтавкиСрезПоследних.Договор КАК Договор = &НужныйДоговор Ай как сложно, просто жуть. Скажи лень? Не с красным ли дипломом из универа вышла? (знавал я таких кадров, без понимания, но красно-дипломированных) | |||
| 38
    
        Мисти 16.08.18✎ 15:54 | 
        Ага, с красным. Я много чего умею и обычно хорошо соображаю, но не в запросах.     | |||
| 39
    
        Мисти 16.08.18✎ 16:12 | 
        Палучилось!!!
 Там вообще-то было 3 запроса, и я точно поняла, в чем причина, и писала не я. Куда переводить? Я обычно - "на политику" - Шлосбергу, "детям" - в фондпр, ну и иногда просто - кто очень просит. https://vk.com/schaaa - вот этому - давно собиралась, но всё никак. | |||
| 40
    
        Fedor-1971 16.08.18✎ 16:26 | 
        (39) Раз выбрала кому, просто помоги.     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |