不确定如何在MS T-SQL中编写以下代码:
Select RunDate,
Lead(RunDate) Over(Order By Rundate) NextRunDate,
(Select Count(*)
From DetailTable
Where DetailTable.EventDate <= NextRunDate) as Cnt
From RunDates
在子查询中使用“ NextRunDate”会给出“无效的列名”错误,这很有意义。但是如何引用该外部变量?谢谢!
您可以嵌套查询,而在另一个查询中保留子查询,然后再包含子查询。
SELECT x.rundate,
(SELECT count(*)
FROM detailtable d
WHERE d.eventdate <= x.nextrundate) cnt
FROM (SELECT r.rundate,
lead(r.rundate) OVER (ORDER BY r.rundate) nextrundate
FROM rundates r) x;