|
Проверка заполнения даты с условием в запросе | ☑ | ||
---|---|---|---|---|
0
palima
15.03.19
✎
07:52
|
Здравствуйте. Помогите пожалуйста решить следующую проблему. Как в запросе оформить условие вида если документссылка.дата1 заполнена, то результат запроса будет дата1, а если не заполнена, то результат запроса будет документссылка.дата2. Через выбор? Честно гуглила и пыталась сделать, но пока безуспешно, хелп...
|
|||
1
SleepyHead
гуру
15.03.19
✎
07:54
|
ВЫБОР КОГДА ДокументСсылка.Дата1=ДатаВремя(1,1,1) ТОГДА ДокументСсылка.Дата1 ИНАЧЕ ДокументСсылка.Дата2 КОНЕЦ
P.S. Фотку выложи. |
|||
2
Filippov
15.03.19
✎
08:07
|
(1) <>
|
|||
3
SleepyHead
гуру
15.03.19
✎
08:13
|
(2) Тихо, сначала фотка, потом реальный код!
|
|||
4
palima
15.03.19
✎
08:43
|
(3) корыстные
Вот еще вопрос... ВЫБОР КОГДА ДокументСсылка.Дата1=ДатаВремя(1,1,1) ТОГДА ДокументСсылка.Дата1 ИНАЧЕ ДокументСсылка.Дата2 КОНЕЦ КАК ВыбДата До этой доработки у меня была одна дата, и я использовала выражение "ГДЕ ДокументСсылка.Дата1 МЕЖДУ &ДатаНач И &ДатаКон)" А как мне теперь сейчас это сделать? Попробовала ГДЕ ВыбДата МЕЖДУ &ДатаНач И &ДатаКон)" , но ругается на то, что поле ВыбДата не найдено... |
|||
5
catena
15.03.19
✎
08:45
|
(4)Либо в ГДЕ повторять всю эту конструкцию, либо сперва в ВТ заименовать ее и потом отдельно ГДЕ на уже выбранную дату.
|
|||
6
unregistered
15.03.19
✎
08:47
|
(4) > корыстные.
> Вот еще вопрос. А ты борзая. Жаль модераторы ещё спят. Я бы вообще банил за помощь тем, у кого нет фотки в личке. (5) Ох уж эта женская солидарность. Будь она неладна. |
|||
7
palima
15.03.19
✎
08:53
|
ВЫБРАТЬ
УправленческийОстатки.Субконто1.Ссылка КАК Ссылка, УправленческийОстатки.Субконто1 КАК ОС, УправленческийОстатки.Субконто1.Код КАК ИнвНомер, //было //УправленческийОстатки.Субконто1.ДатаВвода КАК ДатаВвода, //стало: ВЫБОР КОГДА УправленческийОстатки.Субконто1.ДатаРазделения = ДАТАВРЕМЯ(1, 1, 1) ТОГДА УправленческийОстатки.Субконто1.ДатаВвода ИНАЧЕ УправленческийОстатки.Субконто1.ДатаРазделения КОНЕЦ КАК ВыборДаты, УправленческийОстатки.СуммаОстаток КАК ВосстановительнаяСтоимость, УправленческийОстатки.СуммаОстаток + ЕСТЬNULL(УправленческийОстатки1.СуммаОстаток, 0) КАК ОстаточнаяСтоимость, УправленческийОстатки.Субконто1.ГоссобственностьИнвентарныйНомер КАК ИнвНомерПоРеестру, УправленческийОстатки.Субконто1.ГоссобственностьНаименованиеОбъекта КАК НаимОбъекта, УправленческийОстатки.Субконто1.ГоссобственностьКодОбъекта КАК КодНазначенияОбъекта, УправленческийОстатки.Субконто1.ГоссобственностьКодСостоянияОбъекта КАК КодСостоянияОбъекта, ИЗ (ВЫБРАТЬ ОсновныеСредства.Ссылка КАК Ссылка ИЗ Справочник.ОсновныеСредства КАК ОсновныеСредства ГДЕ ОсновныеСредства.Ссылка В(&СЧ) //конструкцию ниже нужно заменить на ВыборДаты.... И ОсновныеСредства.ДатаВвода МЕЖДУ &ДатаНач И &ДатаКон И ОсновныеСредства.Владелец = &ВыбВладелец И ОсновныеСредства.ГоссобственностьИнвентарныйНомер <> &ГИН И ОсновныеСредства.ГоссобственностьКодОбъекта <> &ГКО И ОсновныеСредства.ГоссобственностьКодСостоянияОбъекта <> &ГКСО) КАК ВложенныйЗапрос ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Управленческий.Остатки(&ВыбДата, Счет В ИЕРАРХИИ (&Сч01), , Владелец <> &ВыбВладелецЦентр) КАК УправленческийОстатки ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Управленческий.Остатки(&ВыбДата, Счет В ИЕРАРХИИ (&Сч02), , Владелец <> &ВыбВладелецЦентр) КАК УправленческийОстатки1 ПО УправленческийОстатки.Субконто1 = УправленческийОстатки1.Субконто1 ПО ВложенныйЗапрос.Ссылка = УправленческийОстатки.Субконто1 УПОРЯДОЧИТЬ ПО ИнвНомер |
|||
8
SleepyHead
гуру
15.03.19
✎
08:58
|
(6) Как хорошо, что ты не модератор, а (5) модератор :)
|
|||
9
palima
15.03.19
✎
09:01
|
(7) или это условие нужно было делать во вложенном запросе?
|
|||
10
catena
15.03.19
✎
09:11
|
(9)
ВЫБОР КОГДА УправленческийОстатки.Субконто1.ДатаРазделения = ДАТАВРЕМЯ(1, 1, 1) ТОГДА УправленческийОстатки.Субконто1.ДатаВвода ИНАЧЕ УправленческийОстатки.Субконто1.ДатаРазделения КОНЕЦ между &ДатаНач И &ДатаКон |
|||
11
catena
15.03.19
✎
09:12
|
И хорошо бы типизировать Субконто1, а то может сплохеть базе...
|
|||
12
unregistered
15.03.19
✎
09:38
|
(10) Правильнее так.
ВЫБОР КОГДА ВЫРАЗИТЬ(УправленческийОстатки.Субконто1 КАК Справочник.ОсновныеСредства).ДатаРазделения = ДАТАВРЕМЯ(1, 1, 1) ТОГДА ВЫРАЗИТЬ(УправленческийОстатки.Субконто1 КАК Справочник.ОсновныеСредства).ДатаВвода МЕЖДУ &ДатаНач И &ДатаКон ИНАЧЕ ВЫРАЗИТЬ(УправленческийОстатки.Субконто1 КАК Справочник.ОсновныеСредства).ДатаРазделения МЕЖДУ &ДатаНач И &ДатаКон КОНЕЦ Только этот код не решает проблему автора. У автора другая задача и решает она её через *опу. Запрос надо переписывать полностью. |
|||
13
catena
15.03.19
✎
09:41
|
(12)Почему так правильнее? Я не про типизацию, а про само условие.
|
|||
14
unregistered
15.03.19
✎
09:51
|
(13) Читабельнее (ИМХО). Но это не главное.
Важнее именно типизация, чтобы не прилетело NULL в логический оператор МЕЖДУ. О вообще повторюсь - это фигня по сравнению с той кашей, что изложена в (9). Там переписывать всё надо. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |