У меня есть таблица, содержащая условия, которые должны быть выполнены для выполнения задания.
SQL для запуска:
select jc.cond_job_name,jc.indx,jc.indx_ptr,jc.joid,jc.operator,jc.type
from dbo.ujo_job_cond jc
where jc.joid = '74689'
Результат:
cond_job_name indx indx_ptr joid operator type
0 0 74689 & B
1 0 74689 | B
job1 2 1 74689 d
job2 3 1 74689 d
job3 4 0 74689 d
с использованием столбцов indx и indx_prt мы можем создать выражение: ( d (job1) | d (job2)) & d (job3)
Путем самостоятельного объединения я могу получить операторы и имя cond_job_name в одной строке.
* * SQL:
select a.cond_job_name,a.indx,a.indx_ptr,b.operator,a.type
from dbo.ujo_job_cond a, dbo.ujo_job_cond b
where a.joid = b.joid
and a.indx_ptr = b.indx
and a.type != 'B'
and a.joid = '74689'
order by a.indx, a.indx_ptr
со следующими результатами
cond_job_name indx indx_ptr operator type
job1 2 1 | d
job2 3 1 | d
job3 4 0 & d
Мне нужна помощь для концептуального создания рекурсивной функции, которая будет производить вывод на основе таблица: (d (job1) | d (job2)) & d (job3)
Я работаю в C#, код изначально разрабатывался для работы с oracle, но теперь он работает с MS SQL Server 2008 и функции «LEAD / LAG» недоступны
Буду признателен за любую помощь. Опять же, я ищу концепцию для решения этой проблемы, я могу написать код.