SQL 如何不同列 显示不同条件查询的结果

举个例子 :
select name,sum(money) as money1
from table
where idate>1

select name,sum(money) as money2
from table
where idate<1

最后表的显示结果是
name money1 money2

现在是我是分别计算两个表 结果放入临时表中 然后两个临时表#tempA 和#tempB 在根据name关联 显示出一张表
有没有效率高 而且简便的方法

第1个回答  推荐于2018-03-04
select a.name,money1,money2 from
(
select name,sum(money) as money1
from table
where idate>1
) a
innser join (select name,sum(money) as money2
from table
where idate<1
) b on a.name=b,name本回答被提问者和网友采纳
第2个回答  2014-04-15
用一个sql语句即可是 实现,以下是oracle的写法,sqlserver的写法只需将decode 换成case when then 结构即可
select decode(a.name,null,b.name,a.name),a.money1,b.money2 from
(select name,sum(money) as money1 from tablewhere idate>1)a full join
(select name,sum(money) as money2 from tablewhere idate<1)b on a.name=b.name
第3个回答  2014-04-15
直接用union就可以了
相似回答