我需要在Oracle SQL中附加3个查询

时间:2011-03-26 02:11:20

标签: sql oracle pivot

我需要附加三个查询并使它们看起来像这样:

HEADER1  HEADER2  HEADER3
-------------------------
Total1   Total2   Total3 

我已经尝试了UNION,但是会以这样的行返回查询结果:

HEADER
------
total1
total2
total3

有什么建议吗?

3 个答案:

答案 0 :(得分:1)

不确定,但也许是这样的:

select (select x1 from something1) as header1, 
(select x2 from something2) as header2, 
(select x3 from something3) as header3
from dual

答案 1 :(得分:0)

当您想要将某些内容放入单行而不是多行时,这是一种有趣的情况。最简单的方法是为每个“列”执行sum()并将where style子句放在IF()语句中。

select sum(sumconstraints) as Header1, sum(sumconstraints) as Header2, etc... 

sumconstraints should be an IF(where clause for this total, 1, 0)

答案 2 :(得分:0)

我有时发现以下内容是一个有用的结构;

select sum(c1) Header1, sum(c2) Header2, sum(c3) Header3
from (
     select field c1, 0 c2, 0 c3
     from table1
     ) t1,
     (
     select 0, field, 0
     from table2
     ) t2
     (
     select 0,0,field
     from table3
     ) t3
[where clause and joins between t1,t2 and t3]

在示例中,我假设了数值并使用了总和。相同的方法可以与字符串一起使用,例如,将0替换为NULL,将SUM替换为MAX。