Имя: Пароль:
1C
1С v8
Соединить по ближайшей дате в запросе
0 slnes
 
14.04.20
10:43
Помогите составить запрос
Есть две таблицы
Таблица1
Реквизит11, Дата11
Реквизит12, Дата12
Все даты в Таблице1 различные

Таблица2
Реквизит21, Дата21
Реквизит22, Дата22
Реквизит23, Дата23
Реквизит24, Дата24
Реквизит25, Дата25
Все даты в Таблице2 различные

Нужно получить таблицу с минимальной разницей между двтами в двух таблицах
Вот такой должен получится результат
Реквизит11, Дата11, Реквизит24, Дата24
Реквизит12, Дата12, Реквизит23, Дата23
Дата11 и Дата24 - ближайшие даты
Дата12 и Дата23 - ближайшие даты
1 dezss
 
14.04.20
10:51
Ну а что тут делать.
Декартово двух таблиц с разницей дат. Если получается отрицательное число, то ставим перед ним минус.
А потом сортировка по убыванию.
2 fisher
 
14.04.20
10:58
Уточню. Декартово произведение с группировкой по датам первой таблицы и нахождением минимального расхождения по модулю с датами из второй таблицы.
А потом соединение со второй таблицей по этому самому расхождению.
Быть готовым к тому, что разные строки первой таблицы будут ссылаться на одну строку второй.
3 Новиков
 
14.04.20
11:18
(0) А откуда эта задача? Собес или реальная прикладная какая-то? Можешь описать?
4 slnes
 
14.04.20
11:37
(2) после уточнения стало понятно.
(3) Банк, нужно объединить платеж в кассу с плановым платежом по графику
5 RomanYS
 
14.04.20
11:41
(4) >>  Банк, нужно объединить платеж в кассу с плановым платежом по графику
Закрывай плановые платежи по фифо.
6 slnes
 
14.04.20
11:51
(5) вот это не понятно, клиент может внести несколько платежей до даты оплаты по графику
7 ИУБиПовиц
 
14.04.20
12:08
Вам же не только даты, но и суммы смотреть надо. Клиент может просрочить например на два месяца, потом одной суммой заплатить, как вы это обыграете то в данной реализации.
Или наоборот вперед забашлять.
8 RomanYS
 
14.04.20
12:11
(6) Так и закрывай по порядку. Клиент просрочил платеж на 17 дней, банк должен закрыть просроченный платеж (хотя разница 17 дней), а не следующий, до которого 13 дней.
9 fisher
 
14.04.20
12:29
(8) Тогда целая партионка получается с полным гамбузом сопутствующих проблем. А ТС хочет, как я понял, просто отчет за период о расхождениях графиков без каких-то "накоплений" в учете.
10 Новиков
 
14.04.20
12:31
А в плановом поступлении дс, какая еще аналитика кроме клиента, даты и суммы - присутствует? Там есть сам объект расчетов - за что планируются деньги получать? Счет/договор или что там?
11 ИУБиПовиц
 
14.04.20
12:36
(9) Когда я делал в свое время похожее, я делал регистры в которые при записи поступления на РС по ФИФЕ писал, а отчетом тупо с регистра брал данные.
12 slnes
 
14.04.20
12:41
(10) Договор,дата платежа ,суммы процента и од которые нужно заплатить, остаток ОД
(11) Мне тоже нравиться этот вариант, но нужен отчет, а такого регистра в проге нет
13 ИУБиПовиц
 
14.04.20
12:47
(12) А если попробовать выгрузить в ТЗ и там обработайте две таблицы, и обратно в запрос передайте. Будет медленнее, но понятнее и легче отлаживать
14 fisher
 
14.04.20
12:48
(11) Я на заре карьеры подобное делал. Из-за постоянных изменений задним числом проблем было больше, чем пользы.
15 Новиков
 
14.04.20
12:50
(12) тебе поможет фифо запросом - это не быстро, но твою задачу решит.
16 fisher
 
14.04.20
12:53
(15) Фифо запросом от начала времен? Можно, если есть гарантии что тебя потом не найдут и в карму ты не веришь :)
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn