2012-05-31 23 views
0

我有四个WITH子句。我想知道是否有可能在它们之间使用内部连接。子查询分解:内部互相加入

我在网上搜索,我找不到任何与此有关的东西。

Oracle版本:11g的

**编辑**

WITH 
    GETDATABYDAY AS 
    (
     select column1, column2 
     from table1 
     where sales > 2000 
    ) 
    SELECT 
     column1, 
     column2 
    FROM 
     GETDATABYDAY; 

WITH 
    GETDATABYDAY1 AS 
    (
     select column3, column2 
     from table1 
     where date between 'date1' and 'date2' 
    ) 
    SELECT 
     column3, 
     column2 
    FROM 
     GETDATABYDAY1; 

Assume that there are two more WITH named: GETDATABYDAY2 and GETDATABYDAY3 

是否可以使用内部连接上的所有GETDATABYDAY,GETDATABYDAY1,GETDATABYDAY2和GETDATABYDAY3?

+0

@ A.B.Cade,因为我不想冒任何风险 – sameer

+0

从尝试** 2 ** WITH子句开始,使用非常简单的SQL。 –

+2

然后我会勇敢的!这里是一个小提琴http://sqlfiddle.com/#!4/d41d8/765。你是这个意思吗 ? –

回答

2

像这样将工作:

with first_cte as ( 
    select ... 
    from ... 
), second_cte as (
    select ... 
    from first_cte 
     join some_table on ... 
), third_cte as (
    select ... 
    from ... 
) fourth_cte as (
    select ... 
    from some_other_table 
     join second_cte on ... 
) 
select .. 
from fourth_cte 
    join third_cte on .... 
+0

请参阅编辑 – sameer

+0

@sameer:当使用多个WITH子句时,你只有关键字**一次**而且它们之间没有';'。比较我的例子和你的代码。 –

+0

我不是说单个WITH子句..我有多个WITH子句!有可能内连接? 你的代码只有一个WITH子句 – sameer

0

我不认为它可以工作,因为每个with clause是一个完全不同的查询的一部分。

虽然您可以创建db views,并使用它们而不是with子句。