|
Соединить по ближайшей дате в запросе | ☑ | ||
---|---|---|---|---|
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) Фифо запросом от начала времен? Можно, если есть гарантии что тебя потом не найдут и в карму ты не веришь :)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |