如何制作解析为值的 T-SQL CTE

How to make a T-SQL CTE that resolves to a value

我想使用类似 CTE 的语法在我的 t-sql 中定义变量,如下所示。

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

不幸的是,这似乎不起作用,我在尝试引用 maxDate 时遇到错误。有什么好的选择吗?所有的逻辑都需要包含在我的查询中,我不能在数据库上定义一个单独的函数。

您需要将 maxDate 视为 TABLE 而不是变量。

根据新查询更新了我的答案。

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