【发布时间】:2016-12-06 11:22:28
【问题描述】:
我正在尝试编写实现以下查询的逻辑:
select ......
from (select ..... from ... complex and long query #1) R1
(select ..... from ... complex and long query #2) R2
Where
NOT ( @DateStart > R2.IstEnde OR @DateEnd <= R2.IstStart)
OR
(
(select count(*)
from R2 // <---- BUG IS HERE
Where R2.IsOutsideTaskTimeFrame = 1 AND R2.IsManuallyFixed = 1
) > 0
)
order BY R2.PersonName, R1.YearOfWeek, R1.Week
这显然不起作用,因为我试图在“count()”条件中“重用”R2。
我是根据“.NET Linq”逻辑编写的,我们可以“重用”之前的查询。
我什至可以编写这种“重用”前一个查询而不重复它的逻辑吗?
【问题讨论】:
-
我对此并不完全确定,但“重用”不是 sql View 概念的另一个词吗?
-
你打算如何加入 R1 和 R2 那里?目前他们没有连接,或者如果他们之间有逗号,那么一个 CROSS JOIN(所有行到所有行)
标签: c# sql-server linq