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