【问题标题】:(sum(case when......as alias(sum(case when……作为别名
【发布时间】:2016-01-14 13:02:22
【问题描述】:
SELECT q1.reportdate
    ,q1.eid
    ,(cast(totalweight AS DECIMAL(20, 2)) / 60)
FROM (
    SELECT last_day(LNDSpace.UW_Review_Ticket.Review_Date) AS reportdate
        ,LNDSpace.UW_Review_Ticket.Underwriter_EID AS eid
        ,(
            sum(CASE 
                    WHEN (LNDSpace.UW_Review_Ticket.Loan_Type) = 'Conventional'
                        AND (LNDSpace.UW_Review_Ticket.Review_State) = 'New'
                        AND (LNDSpace.UW_Review_Ticket.SH_2R_Denial) = 'No'
                        AND (LNDSpace.UW_Review_Ticket.SH_Appeal) = 'No'
                        AND (LNDSpace.UW_Review_Ticket.Decision) <> 'Withdrawn'
                        THEN 1
                    ELSE 0
                    END) + sum(CASE 
                    WHEN (LNDSpace.UW_Review_Ticket.SH_2R_Denial) = 'No'
                        AND (LNDSpace.UW_Review_Ticket.SH_Appeal) = 'No'
                        AND (LNDSpace.UW_Review_Ticket.Decision) = 'Withdrawn'
                        THEN 1
                    ELSE 0
                    END)
            ) * 8 + (
            sum(CASE 
                    WHEN (LNDSpace.UW_Review_Ticket.Loan_Type) = 'VA'
                        AND (LNDSpace.UW_Review_Ticket.Review_State) = 'New'
                        AND (LNDSpace.UW_Review_Ticket.Review_Type) IN ('Appraisal / LAPP')
                        AND (LNDSpace.UW_Review_Ticket.SH_2R_Denial) = 'No'
                        AND (LNDSpace.UW_Review_Ticket.SH_Appeal) = 'No'
                        AND (LNDSpace.UW_Review_Ticket.Decision) <> 'Withdrawn'
                        THEN 1
                    ELSE 0
                    END)
            ) * 40 AS totalweight
    FROM LNDSpace.UW_Review_Ticket
    GROUP BY 1, 2
    ) AS q1

我需要每个“总和”都是别名...这可能吗?

( sum(case when ( LNDSpace.UW_Review_Ticket.Loan_Type )='VA' and (   LNDSpace.UW_Review_Ticket.Review_State )='New' and ( LNDSpace.UW_Review_Ticket.Review_Type ) in ('Appraisal / LAPP') 
and  ( LNDSpace.UW_Review_Ticket.SH_2R_Denial )='No' and ( LNDSpace.UW_Review_Ticket.SH_Appeal )='No' and ( LNDSpace.UW_Review_Ticket.Decision )<>'Withdrawn' then 1 else 0 end ) as TEST1) 

【问题讨论】:

  • 即使在格式化您的查询后,我仍然不明白您的问题。但这是一个很好的起点spaghettidba.com/2015/04/24/…
  • 在您的查询中创建另一个派生表并在那里计算总和并为其命名。

标签: sql teradata


【解决方案1】:

使用派生表,您可以像这样为总和起别名...

SELECT q1.reportdate
    ,q1.eid
    ,(cast(totalweight AS DECIMAL(20, 2)) / 60)
FROM (
    SELECT DT.reportdate
        ,DT. eid
        ,(
            DT.sum1 + 
            DT.sum2
            ) * 8 
            + DT.sum3 * 40 AS totalweight
    FROM 
            (Select last_day(LNDSpace.UW_Review_Ticket.Review_Date) AS reportdate,
            LNDSpace.UW_Review_Ticket.Underwriter_EID AS eid,
            sum(CASE 
                    WHEN (LNDSpace.UW_Review_Ticket.Loan_Type) = 'Conventional'
                        AND (LNDSpace.UW_Review_Ticket.Review_State) = 'New'
                        AND (LNDSpace.UW_Review_Ticket.SH_2R_Denial) = 'No'
                        AND (LNDSpace.UW_Review_Ticket.SH_Appeal) = 'No'
                        AND (LNDSpace.UW_Review_Ticket.Decision) <> 'Withdrawn'
                        THEN 1
                    ELSE 0
                    END) as sum1 ,
        sum(CASE 
                    WHEN (LNDSpace.UW_Review_Ticket.SH_2R_Denial) = 'No'
                        AND (LNDSpace.UW_Review_Ticket.SH_Appeal) = 'No'
                        AND (LNDSpace.UW_Review_Ticket.Decision) = 'Withdrawn'
                        THEN 1
                    ELSE 0
                    END) as Sum2 ,

         sum(CASE 
                    WHEN (LNDSpace.UW_Review_Ticket.Loan_Type) = 'VA'
                        AND (LNDSpace.UW_Review_Ticket.Review_State) = 'New'
                        AND (LNDSpace.UW_Review_Ticket.Review_Type) IN ('Appraisal / LAPP')
                        AND (LNDSpace.UW_Review_Ticket.SH_2R_Denial) = 'No'
                        AND (LNDSpace.UW_Review_Ticket.SH_Appeal) = 'No'
                        AND (LNDSpace.UW_Review_Ticket.Decision) <> 'Withdrawn'
                        THEN 1
                    ELSE 0
                    END) as sum3                            
                    FROM LNDSpace.UW_Review_Ticket 
            )DT
    GROUP BY 1, 2
    ) AS q1

请在继续之前检查此查询的输出。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-18
    • 1970-01-01
    • 2014-08-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多