У меня есть данные, которые мне нужно согласовать из двух разных запросов. Эти данные поступают от человека, который выбирает даты и платежи для отсрочки ссуды. Эта информация помещается в строку в таблице, относящуюся к запросу 1. Платежи не хранятся в строке в запросе 1. Платежи хранятся в таблице в запросе 2. Единственным фрагментом данных, который связывает два источника данных, является Дата. Мне нужно каким-то образом превратить запрос 1 в таблицу из строки, а затем связать его с таблицей запроса 2. В этом примере клиент хотел отложить платежи на 29 февраля и 29 марта, но НЕ на платеж 29 апреля.
Запрос 1
SELECT TOP(1) task_detail.task_refno
, task_detail.userdef10
, task_detail.userdef11
, task_detail.userdef12
, task_detail.userdef13
, task_detail.userdef37
, task_detail.userdef38
, task_detail.userdef39
, task_detail.userdef40
FROM task INNER JOIN
task_detail ON task.task_refno = task_detail.task_refno
WHERE (task.NLS_refno = 53475)
ORDER BY task.task_refno DESC
Результаты запроса 1
task_refno userdef10 userdef11 userdef12 userdef13 userdef37 userdef38 userdef39 userdef40
252152 02/29/2020 03/30/2020 04/30/2020 NULL 1 1 0 0
Запрос 2
SELECT TOP (6) lpd.row_id, lpd.date_due, lpd.payment_remaining
FROM loanacct_payments_due AS lpd INNER JOIN
loanacct AS la ON lpd.acctrefno = la.acctrefno
WHERE (lpd.date_due <= DATEADD(m, 3, CONVERT(date, GETDATE())))
AND (lpd.payment_type = 'PB' OR
lpd.payment_type = 'PI' OR
lpd.payment_type = 'P' OR
lpd.payment_type = 'I')
AND la.acctrefno = 53475
Результаты запроса 2
row_id date_due payment_remaining
6924954 2020-02-29 00:00:00.000 388.97
6970925 2020-03-30 00:00:00.000 398.97
7015051 2020-04-30 00:00:00.000 408.97
Обратите внимание, что в результатах запроса 1 userdef10, userdef11, userdef12, userdef13 относятся к date_due в результатах запроса 2. Значения для userdef37, userdef38, userdef39, userdef40 - это флажки, которые отмечены или нет. 1 проверяется, а 0 не проверяется.
В моем конечном результате мне нужно получить row_id и payment_remaining из результатов запроса 2, где соответствующие userdef37, 38, 39 и 40 равны 1.
В этом примере мне нужен row_id payment_remaining 6924954 388.97
, потому что userdef37, userdef38 оба были 1.
Я думаю, что конечный результат для результатов запроса 1 - попытаться поместить его в таблицу, которая может быть объединена с результатами запроса 2, подобными этому .
task_refno due_date selected
252152 02/29/2020 1
252152 03/29/2020 1
252152 04/29/2020 0
252152 NULL 0
И попробуйте присоединиться к due_date.
Мне никогда не приходилось брать строковые данные и превращать их в табличные данные.