SQL 有关问题
SQL 问题
left join 表一 和表二 的时候 会报错说: SQL0204N "ADMINISTRATOR.表一" 是未定义的名称。
select uniontable.*,表一.col2,表二.col2 from
(
select * from (
select table1.col1,table1.col2,table2.col2 from table1 inner join table2 on table1.col1=table2.col2 ) as表一
union
select * from (
select table3.col1,table1.col2,table4.col2 from table1 inner join table2 on table3.col1=table4.col2 ) as表二
) as uniontable
left join 表1 on 表一.col1 = uniontable.col1
left join 表2 on 表二.col1 = uniontable.col1
------解决方案--------------------
select uniontable.*,表一.col2,表二.col2 from
(
select * from (
select table1.col1,table1.col2,table2.col2 from table1 inner join table2 on table1.col1=table2.col2 ) as 表一
union
select * from (
select table3.col1,table1.col2,table4.col2 from table1 inner join table2 on table3.col1=table4.col2 ) as 表二
) as uniontable
left join 表1 on 表一.col1 = uniontable.col1
left join 表2 on 表二.col1 = uniontable.col1
------解决方案--------------------
select uniontable.*,表一.col2,表二.col2 from
(
select * from (
select table1.col1,table1.col2,table2.col2 from table1 inner join table2 on table1.col1=table2.col2 ) as 表一
union
select * from (
select table3.col1,table1.col2,table4.col2 from table1 inner join table2 on table3.col1=table4.col2 ) as 表二
) as uniontable
left join 表1 on 表1.col1 = uniontable.col1
left join 表2 on 表2.col1 = uniontable.col1
------解决方案--------------------
SELECT OUTPUT_OF_GROUP."GROUP", OUTPUT_OF_08."SUM" SUM08, OUTPUT_OF_09."SUM" SUM09 FROM
(
SELECT DISTINCT "GROUP" FROM A
) OUTPUT_OF_GROUP
LEFT JOIN
(
SELECT "GROUP", SUM(NVL(OUTPUT, 0)) SUM FROM A
WHERE A.YEAR = '08'
GROUP BY "GROUP"
) OUTPUT_OF_08 ON OUTPUT_OF_GROUP.GROUP = OUTPUT_OF_08.GROUP
LEFT JOIN
(
SELECT "GROUP", SUM(NVL(OUTPUT, 0)) SUM FROM A
WHERE A.YEAR = '09'
GROUP BY "GROUP"
) OUTPUT_OF_09 ON OUTPUT_OF_GROUP.GROUP = OUTPUT_OF_09.GROUP
left join 表一 和表二 的时候 会报错说: SQL0204N "ADMINISTRATOR.表一" 是未定义的名称。
select uniontable.*,表一.col2,表二.col2 from
(
select * from (
select table1.col1,table1.col2,table2.col2 from table1 inner join table2 on table1.col1=table2.col2 ) as表一
union
select * from (
select table3.col1,table1.col2,table4.col2 from table1 inner join table2 on table3.col1=table4.col2 ) as表二
) as uniontable
left join 表1 on 表一.col1 = uniontable.col1
left join 表2 on 表二.col1 = uniontable.col1
------解决方案--------------------
select uniontable.*,表一.col2,表二.col2 from
(
select * from (
select table1.col1,table1.col2,table2.col2 from table1 inner join table2 on table1.col1=table2.col2 ) as 表一
union
select * from (
select table3.col1,table1.col2,table4.col2 from table1 inner join table2 on table3.col1=table4.col2 ) as 表二
) as uniontable
left join 表1 on 表一.col1 = uniontable.col1
left join 表2 on 表二.col1 = uniontable.col1
------解决方案--------------------
select uniontable.*,表一.col2,表二.col2 from
(
select * from (
select table1.col1,table1.col2,table2.col2 from table1 inner join table2 on table1.col1=table2.col2 ) as 表一
union
select * from (
select table3.col1,table1.col2,table4.col2 from table1 inner join table2 on table3.col1=table4.col2 ) as 表二
) as uniontable
left join 表1 on 表1.col1 = uniontable.col1
left join 表2 on 表2.col1 = uniontable.col1
------解决方案--------------------
SELECT OUTPUT_OF_GROUP."GROUP", OUTPUT_OF_08."SUM" SUM08, OUTPUT_OF_09."SUM" SUM09 FROM
(
SELECT DISTINCT "GROUP" FROM A
) OUTPUT_OF_GROUP
LEFT JOIN
(
SELECT "GROUP", SUM(NVL(OUTPUT, 0)) SUM FROM A
WHERE A.YEAR = '08'
GROUP BY "GROUP"
) OUTPUT_OF_08 ON OUTPUT_OF_GROUP.GROUP = OUTPUT_OF_08.GROUP
LEFT JOIN
(
SELECT "GROUP", SUM(NVL(OUTPUT, 0)) SUM FROM A
WHERE A.YEAR = '09'
GROUP BY "GROUP"
) OUTPUT_OF_09 ON OUTPUT_OF_GROUP.GROUP = OUTPUT_OF_09.GROUP