【发布时间】:2014-11-24 15:12:54
【问题描述】:
select sum(b.budget) as Budget,sum(b.rev) as Revised,sum(b.expe) as Expenditure,(sum(b.budget) + sum(b.rev) - sum(b.expe)) as balance,
b.accounts,b.abac_code,
b.abac_name,b.dac_code,b.dac_name,b.abacname
from
(
select upper('Budget') typ,a.sl abac_sl,a.code abac_code,a.name abac_name,d.code dac_code,d.name dac_name,a.code || ' - ' || a.name abacname
,0 Accounts,nvl(sum(nvl(g3.amt,0)),0) as budget,0 rev,0 expe
from abac a,dac d,acct_master ac,gl3 g3
where g3.acct_sl=ac.sl and a.sl=ac.afld_sl4 and d.sl =afld_sl5 and upper(g3.typ) = upper('budget')
and d.sl in (select sl from selall where upper(table_name) = upper('dac') and user_sl = :user_sl )
and a.sl in (select sl from selall where upper(table_name) = upper('abac3') and upper(typ) = upper('pabac') and user_sl = :user_sl )
and g3.drange_sl = :drange_sl
group by a.sl,a.code ,a.name ,d.code,d.name
union all
select upper('Revised') typ,a.sl abac_sl,a.code abac_code,a.name abac_name,d.code dac_code,d.name dac_name,a.code || ' - ' || a.name abacname,
0 Accounts,0 budget,nvl(sum(nvl(rev_amt,0)),0) as rev,0 expe
from abac a,dac d,acct_master ac,gl3 g3
where g3.acct_sl=ac.sl and a.sl=ac.afld_sl4 and d.sl =afld_sl5 and upper(g3.typ) = upper('budget')
and d.sl in (select sl from selall where upper(table_name) = upper('dac') and user_sl = :user_sl )
and a.sl in (select sl from selall where upper(table_name) = upper('abac3') and upper(typ) = upper('pabac') and user_sl = :user_sl )
and g3.drange_sl =:drange_sl
group by a.sl,a.code ,a.name ,d.code,d.name
union all
select upper('Expenditure') typ,a.sl abac_sl,a.code abac_code,a.name abac_name,d.code dac_code,d.name dac_name,a.code || ' - ' || a.name abacname,
0 Accounts,0 budget,0 rev,nvl(sum(nvl((abs(g.amt)),0)),0) expe
from gl g,chq c,acct_master ac,abac a ,dac d
where upper(typ) = upper('pay2') and g.vouchr_no>0 and g.amt>0 and g.acct_sl =ac.sl and ac.afld_sl4 =a.sl and ac.afld_sl5 =d.sl
and g.chq_sl=c.sl and g.drange_sl =:drange_sl and c.doc_date between :from_date and :to_date
and d.sl in (select sl from selall where upper(table_name) = upper('dac') and user_sl = :user_sl)
and a.sl in (select sl from selall where upper(table_name) = upper('abac3') and upper(typ) = upper('pabac') and user_sl = :user_sl )
group by a.sl,a.code ,a.name ,d.code,d.name
order by dac_code
) b
group by b.abac_code,b.abac_name,b.dac_code,b.dac_name,b.abacname,b.accounts
order by balance
【问题讨论】:
-
你到底希望我们如何处理你扔在这里的无格式的烂摊子?
-
omg...你能和我们分享一下这个问题吗?
-
它就像一个多重查询...select a.name,b.code,c.add from (select name from a
-
它就像一个多重查询...我用简单的例子来展示... select d.name,d.code,d.add from ( select name from a union all select code from b union all从 c 中选择添加)d
-
请编辑您的问题 1) 在散文中告诉我们您想要做什么,您的问题是什么以及您的问题是什么 2) 使用格式化工具来格式化代码。 3)使标题成为一个问题,目前它是一个陈述。如果您希望得到答案,您必须提出问题。顺便说一句:你是写
SQL声明还是从某个地方得到的?
标签: oracle10g