КТР рекурсивную не уменьшать
Данные таблицы элементов
ID_element Element1 Element2 DATE_Ele ID_Personne 1 NULL 25 2002 1 2 46 NULL 2003 1 3 2 NULL 2004 1 4 3 NULL 2005 1 5 5 NULL 2006 1 6 178 NULL 2007 1
Данные таблицы зарплата
ID_Personne Date 1 2007
Я делаю соединение между двумя таблицами ID_Personne ссылка и я взял две даты, соответствующие следующим образом
select ID_Personne,Date_Per,Element1 ,Element2 ,DATE_Ele from Personne as P Inner Join element as c ON C.ID_Personne=P.ID_Personne AND Date_Per=DATE_Ele
Таким образом, в нашем примере 2007 триггер отхода цикла к декременту-1, но мы должны проверить, что в 2007 году , если element1 не равен null и element2 равен null, до тех пор, пока это условие проверено, продолжайте декрементировать date_Pers -1, который всегда равен date_Eleme, пока условие не будет соблюдено, я имею в виду, что в этом примере 2002 не отвечает нашему критерию, потому что element1 равен null и не является null element2, поэтому мы остановили наш цикл.
Что я уже пробовал:
это мой запрос ,но он не уменьшает дату. Любая помощь будет очень признательна
;With CTE_AS AS ( Select Distinct Dem.IdPersonne, Element1,Element2,Date_Pers as AnneeFct -- into #test From element AS Dem Inner Join Element as cpr WITH (NOLOCK) ON IdPersonne = .IdPersonne AND Date_Pers =Date_Ele where Element1is not null and Element2 is null UNION ALL Select Distinct Dem.IdPersonne, Element1,Element2, AnneeFct -- into #test From CTE_AS AS Dem Inner Join Element as cpr WITH (NOLOCK) ON Id_Personne = .Id_Personne AND Date_Pers =Date_Ele AND Date_Pers = AnneeFct-1 where Element1is not null and Element2 is null ) Select Distinct Dem.IdPersonne, Element1,Element2, AnneeFct FROM CTE_AS OPTION (MAXRECURSION 100)
Wendelius
В вашем примере, каков ожидаемый результат?
Member 10971811
ожидаемые данные должны получить этот результат после того, как условие не будет соблюдено, как эти данные.
ID_element Element1 Element2 DATE_Ele ID_Personne
1 NULL 25 2002 1