我需要附加三个查询并使它们看起来像这样:
HEADER1 HEADER2 HEADER3
-------------------------
Total1 Total2 Total3
我已经尝试了UNION
,但是会以这样的行返回查询结果:
HEADER
------
total1
total2
total3
有什么建议吗?
答案 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。