在"选择查询"中使用单例语句来显示多列

2020-08-13 21:24发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)嗨,团队 我有一个要求,我...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


嗨,团队

我有一个要求,我必须使用查询中的Case语句选择两列。

目前正在使用以下查询并获得输出

 SELECT客户,CREATE_DATE,
 案件
 当SCHEME_A IN('Y')然后是'SCHEME_A'
 当SCHEME_B IN('Y')和SCHEME_A IN('N')然后是'SCHEME_B'
 其他
 空值
 结束
 作为WARRANTY_SCHEME,
 SCHEME_A_VALUE,SCHEME_B_VALUE
 FROM PRICE_SCHEME_TABLE WHERE CUSTOMER ='*******'AND CREATE_DATE>'2020.01.01'
 

我得到如下所示的输出

但是我希望输出进一步减少到三列,如下所示

在上面的查询中使用相同的case语句时,我们必须选择相应的方案和相应的方案值,以及如何将查询修改为高于此结果。

致谢

哥瓦丹

(10.7 kB)
3条回答
南山jay
2020-08-13 21:43 .采纳回答

我认为您对要获取的结果集的描述不正确。

SQL语句投影了以下列:

 SELECT
     顾客
   ,CREATE_DATE
   ,CASE ... AS WARRANTY_SCHEME
   ,SCHEME_A_VALUE
   ,SCHEME_B_VALUE
 FROM 

因此,您的输出缺少CREATE_DATE列。

如果您希望输出仅包含CUSTOMER,WARRANTY_SCHEME和WARRANTY_VALUE,则必须创建WARRANTY_VALUE列并删除CREATE_DATE, 投影列表中的SCHEMA_A_VALUE和SCHEMA_B_VALUE:

 SELECT
     顾客
   ,CASE ... AS WARRANTY_SCHEME
   ,CASE ... AS WARRANTY_VALUE
 FROM 

由于计算WARRANTY_VALUE的CASE语句的逻辑与WARRANTY_SCHEME的逻辑相同,因此我将实现留给您。

一周热门 更多>