【问题标题】:Set a variable based on an IF statement in SQL Manager根据 SQL 管理器中的 IF 语句设置变量
【发布时间】:2019-01-25 17:05:24
【问题描述】:

我有一个名为 Ordhdr 的表,我想根据该表的 [status] 列创建一个查询。我有许多状态,我想将它们分组为 Won、Lost、Pending 以便于查看。如何设置我的声明,设置语句首先将当前状态“重命名”为WONLOSTPENDING,这样我就可以使用新名称显示我的查询结果。

Sample Data
Order 1, STatus is QteCall1 (Pending Status)
Order 2, Status is Converted (Won Status)
Order 3, STatus is Declined (Dead Status)
Order 4, Status is Waiting (Pending Status)
Order 5, Status is NOResponse (Dead Status)'

如何“重命名”当前状态以获得结果 显示计数为

  • 1 韩元
  • 2 待处理
  • 2 死

【问题讨论】:

    标签: sql-manager


    【解决方案1】:

    这是你需要的吗?

    SELECT CASE WHEN STATUS = 'Converted' THEN 'WON' 
                WHEN STATUS IN ('QteCall1','Waiting') THEN 'PENDING'
                WHEN STATUS IN ('Declined', 'NOResponse ') THEN 'LOST' END AS NEW_NAME
                --The above case expression is being used to compare and rename the values according to the desired match
            ,COUNT(*) AS COUNT
        FROM Ordhdr
        GROUP BY 
            CASE WHEN STATUS = 'Converted' THEN 'WON' 
                WHEN STATUS IN ('QteCall1','Waiting') THEN 'PENDING'
                WHEN STATUS IN ('Declined', 'NOResponse ') THEN 'LOST' END
                -- This second case expression is the same as the previous one, but it is required by the SQL standards to be in the GROUP BY section
    

    Result from query.

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-05-01
      • 1970-01-01
      • 2016-08-17
      • 2021-09-14
      • 1970-01-01
      • 2017-09-06
      • 1970-01-01
      相关资源
      最近更新 更多