WITH RESULT1 AS (
SELECT
**B.StartDate - C.StartDate) AS Test**
FROM
Project B
WHERE
B.FundingAmount > 0
)
;
WITH RESULT2 AS (
SELECT
C.StartDate
FROM
Project C
WHERE
C.FundingAmount > 0
)
我正在努力的部分是星标。这就是我想要做的。从StartDate
获取Result1
,从StartDate
中减去Result2
。我该怎么做?
我简化了查询的其余部分,但实质上,Result1和Result2有2个不同的where clasue,它们产生两个不同的结果。我想知道我是否可以按原样保留它并以某种方式相互引用,或者我是否必须完全重写整个事情。
谢谢
答案 0 :(得分:0)
我相信这会非常接近你想要的,但是因为你在JOIN
和Result2
之间没有Project
条件,我的代码会产生一个笛卡尔product(两个表/结果中行的所有可能组合)。
如果你知道"平等"在这两组之间的条件,请用这个条件替换我的1=1
条件。
WITH RESULT2 AS (
SELECT
C.StartDate
FROM
Project C
WHERE
C.FundingAmount > 0
)
SELECT Result2.StartDate - P.StartDate
FROM Result2
INNER JOIN Project P ON 1 = 1
WHERE
P.FundingAmount > 0
答案 1 :(得分:-1)
在oracle中只是
WITH RESULT1 AS (
SELECT
**B.StartDate - C.StartDate) AS Test**
FROM
Project B
WHERE
B.FundingAmount > 0
),
RESULT2 AS (
SELECT
C.StartDate
FROM
Project C
WHERE
C.FundingAmount > 0
)
select * from Result1, Result2 where whatever