在图表系列中使用SUM CASE

时间:2014-05-08 08:54:29

标签: charts apex

我有两个不同的图表页面,在其中一个页面中,我创建了每月费用和收入的概览 - 所有费用。 在另一个我想比较今年和去年。 第一个很简单,我只能使用DECODE来解决它。但是对于第二个,我相信我需要使用CASE。

这就是它变得棘手的地方,如果我在SQL命令窗口中运行我的查询它工作正常并且我得到结果,但是当我在我的图表系列中使用它时,我得到了没有数据'。 可能是CASE的SUM是不允许的吗?

我的工作系列查询:

select NULL LINK, to_char(A.ENTRY_DATE, 'MON') LABEL, 
sum(decode(A.EXPENSE_TYPE, ' Expense', A.AMOUNT)) AMOUNT_EXPENSES, 
sum(decode(A.EXPENSE_TYPE, ' Income', A.AMOUNT)) AMOUNT_INCOME
from BUDGET_EXPENSES A, BUDGET_USERS B
WHERE A.USER_ID = B.USER_ID
and (B.APPLICATION_USER = nvl(v('APP_USER'),USER)
or B.DIRECT_MANAGER = nvl(v('APP_USER'),USER))
group by to_char(A.ENTRY_DATE, 'MON'),  to_char(A.ENTRY_DATE, 'MM')
order by to_char(A.ENTRY_DATE, 'MM')

我的非工作系列查询:

select NULL LINK, to_char(A.ENTRY_DATE, 'MON') LABEL, 
sum(case when A.EXPENSE_TYPE = ' Expense' and A.ENTRY_DATE > '01/01/' 
|| to_char(sysdate, 'YYYY') then a.amount end) SUM_EXP_THIS_YEAR,
sum(case when A.EXPENSE_TYPE = ' Income' and A.ENTRY_DATE > '01/01/' 
|| to_char(sysdate, 'YYYY') then a.amount end) SUM_INC_THIS_YEAR,
sum(case when A.EXPENSE_TYPE = ' Expense' and a.entry_date between '01/01/' 
|| to_char(sysdate -365, 'YYYY') and '01/01/' || to_char(sysdate, 'YYYY') then 
a.amount end) SUM_EXP_LAST_YEAR,
sum(case when A.EXPENSE_TYPE = ' Income' and a.entry_date between '01/01/' 
|| to_char(sysdate -365, 'YYYY') and '01/01/' || to_char(sysdate, 'YYYY') then 
a.amount end) SUM_INC_LAST_YEAR
from BUDGET_EXPENSES A, BUDGET_USERS B
WHERE A.USER_ID = B.USER_ID
and (B.APPLICATION_USER = nvl(v('APP_USER'),USER)
or B.DIRECT_MANAGER = nvl(v('APP_USER'),USER))
group by to_char(A.ENTRY_DATE, 'MON'),  to_char(A.ENTRY_DATE, 'MM')
order by to_char(A.ENTRY_DATE, 'MM')

感谢任何帮助!

0 个答案:

没有答案