SELECT ( select (NVL((SELECT AMOUNT
FROM ASGN_TRNS_TBL
WHERE
TRNS_DATE = '1-SEP-18' --v_current_date
AND DEP_ID = 1--v_current_department
AND ACC_NO =6),0)
+
-- 5 account
NVL((SELECT AMOUNT
FROM ASGN_TRNS_TBL
WHERE
TRNS_DATE = '1-SEP-18'--v_current_date
AND DEP_ID = 1--v_current_department
AND ACC_NO = 5),0)) FROM DUAL
/
-- 2 account
SELECT (NVL((SELECT AMOUNT
FROM ASGN_TRNS_TBL
WHERE
TRNS_DATE ='1-SEP-18'-- v_current_date
AND DEP_ID = 1--v_current_department
AND ACC_NO = 2),0)
+
-- 3 account
NVL((SELECT AMOUNT
FROM ASGN_TRNS_TBL
WHERE
TRNS_DATE = '1-SEP-18'--v_current_date
AND DEP_ID = 1--v_current_department
AND ACC_NO = 3),0)) FROM DUAL )
FROM DUAL;
我的问题是如何从此查询中获取值。我想做的就是这样(选择金额+选择金额)/(选择其他金额+选择其他金额),然后使用FROM DUAL关键字获取总价值...
答案 0 :(得分:0)
您可以尝试使用条件聚合函数代替select
SELECT SUM(CASE WHEN TRNS_DATE = TO_DATE('01-09-2018' ,'DD-MM-YYYY') AND DEP_ID = 1 AND ACC_NO IN (5,6) THEN AMOUNT ELSE 0 END) /
SUM(CASE WHEN TRNS_DATE = TO_DATE('01-09-2018' ,'DD-MM-YYYY') AND DEP_ID = 1 AND ACC_NO IN (2,3) THEN AMOUNT ELSE 0 END)
FROM ASGN_TRNS_TBL
注意
TRNS_DATE
似乎是日期类型值。您需要使用TO_DATE
函数
将'1-SEP-18'
转换为日期类型,否则将为字符串。