Как сделать T-SQL CTE, который разрешается в значение - PullRequest
0 голосов
/ 15 мая 2019

Я бы хотел использовать CTE-подобный синтаксис для определения переменных в моем t-sql, как показано ниже.

with maxDate as (
        select max(date) from FACT_TBL
    )
   , activeRecords as (
     select * from FACT_TBL_2 
     where date <= maxDate
    )

К сожалению, это, похоже, не работает, и я получаю сообщение об ошибке при попытке обратиться к maxDate. Есть ли хорошая альтернатива этому? Вся логика должна содержаться в моем запросе, и я не могу определить отдельную функцию в базе данных.

1 Ответ

3 голосов
/ 15 мая 2019

Вы должны рассматривать maxDate как TABLE, а не как VARIABLE.

Обновлен мой ответ на основе нового запроса.

with maxDate as (
    select max(date) mDate from FACT_TBL
)
, activeRecords as (
 select * from FACT_TBL_2 
 where date <= (SELECT mDate FROM maxDate) 
)
...