|
Алгоритм поиска в ТЗ | ☑ | ||
---|---|---|---|---|
0
егаис
09.10.22
✎
19:31
|
Есть тз1 с колонками счетзатрат|статья|сумма|коррсчет
И есть некая тз2 с правилами распределения затрат раздел|статья|коррсчетзатрат Не хочеться использовать перебор, есть ли алгоритм поиска строк тз1 в тз2. Причем алгоритм сначала ищет по ключу Статья|коррсчет, если не находит уже только по Статья? Запросом это реально реализовать? |
|||
1
RomanYS
09.10.22
✎
19:34
|
(0) запросом можно
|
|||
2
егаис
09.10.22
✎
19:38
|
(1) а можно примером кинуть, пока не соображу как
ЕстьNULL во вложенном запросе? |
|||
3
егаис
09.10.22
✎
19:59
|
Вроде работает, но верно ли с точки производительности?
сделать два соединения по разным ключам и проверять на eстьnull |
|||
4
егаис
09.10.22
✎
20:06
|
наглядно так
Запрос.Текст = "ВЫБРАТЬ | ПравилаФормированияФХДСтатьиЗатрат.Ссылка КАК Ссылка, | ПравилаФормированияФХДСтатьиЗатрат.СтатьяЗатрат КАК СтатьяЗатрат, | ПравилаФормированияФХДСчетУчета.СчетУчета КАК СчетУчета |ПОМЕСТИТЬ ВТПравила |ИЗ | Справочник.ПравилаФормированияФХД.СтатьиЗатрат КАК ПравилаФормированияФХДСтатьиЗатрат | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ПравилаФормированияФХД.СчетУчета КАК ПравилаФормированияФХДСчетУчета | ПО ПравилаФормированияФХДСтатьиЗатрат.Ссылка = ПравилаФормированияФХДСчетУчета.Ссылка |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | Источник.Счет КАК Счет, | Источник.СтатьяЗатрат КАК СтатьяЗатрат, | Источник.КоррСчет КАК КоррСчет, | Источник.СуммаОборотДт КАК СуммаОборотДт, |ПОМЕСТИТЬ ВТЗатраты |ИЗ | &ВнешнийИсточник КАК Источник |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ВТЗатраты.СтатьяЗатрат КАК СтатьяЗатрат, | ВТЗатраты.СуммаОборотДт КАК СуммаОборотДт, | ЕСТЬNULL(ВТПравила.Ссылка, ВТПравила1.Ссылка) КАК Правило |ИЗ | ВТЗатраты КАК ВТЗатраты | ЛЕВОЕ СОЕДИНЕНИЕ ВТПравила КАК ВТПравила | ПО ВТЗатраты.СтатьяЗатрат = ВТПравила.СтатьяЗатрат | И ВТЗатраты.КоррСчет = ВТПравила.СчетУчета | ЛЕВОЕ СОЕДИНЕНИЕ ВТПравила КАК ВТПравила1 | ПО ВТЗатраты.СтатьяЗатрат = ВТПравила1.СтатьяЗатрат"; |
|||
5
RomanYS
09.10.22
✎
20:06
|
(3) верно
|
|||
6
RomanYS
09.10.22
✎
20:20
|
(4) а при соединении с ВТПравила1 не нужно условие на пустой коррсчет? У тебя же без него несколько правил подтягиваться будет
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |