三个查询的结果分别动态到三个单独的列中

Result of three queries dynamically into three separate columns respectively

我想将这三个查询的结果分别动态地放入三个单独的列中。

SELECT SUM(fee_amt) as Total_Fee from FEEDTL where Semester_No='2015SM' AND Registration_No='2015-1234' AND Fee_type='TUITION FEE' 

SELECT SUM(fee_amt) as Balance from FEEDTL where Semester_no='2015SM' AND Registration_No='2015-1235' AND Fee_type='TUITION FEE' and Verify='No' 

SELECT SUM(fee_amt) as Paid_Amt from FEEDTL where Semester_no='2015SM' AND Registration_No='2015-1236' AND Fee_type='TUITION FEE' and Verify='Yes'

您可以将这些查询合并为一个查询。 公共条件可以留在 where 子句中,非公共条件可以移动到各自 sums 内的 case 表达式:

SELECT SUM(CASE registration_no WHEN '2015-1234' THEN fee_amt END) AS Total_Fee,
       SUM(CASE WHEN registration_no = '2015-1235' AND verify = 'No' 
                THEN fee_amt END) AS Balance,
       SUM(CASE WHEN registration_no = '2015-1236' AND verify = 'Yes 
                THEN fee_amt END) AS Pair_amt
FROM   feedtl
WHERE  semester_no = '2015SM' AND fee_type = 'TUITION FEE'

请注意 case 表达式 returns null 默认情况下(即,当不匹配 whenelse 子句时,并且sum 只是忽略 nulls.