sap bo webi中自定义查询中使用if then replace条件的语法

2020-09-11 00:01发布

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

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


我正在运行当前脚本,但想添加一个if if then条件。

基于从业务对象中一个系统中获取的当前数据的以下类似内容,该机器被命名为" 005",所以我希望它在报告的输出上显示名称" P41205",我认为 如果V_FLUID_SMU_RECORD.MACHINE_N ='005'重命名为" P41205",则命令的谎言应该是。 然后将其添加到下面运行的脚本中。 这样可以代替机器名称吗?

选择V_FLUID_SMU_RECORD.MACHINE_N,V_FLUID_SMU_RECORD.TIMESTAMP,V_FLUID_SMU_RECORD.SMU_Q,V_FLUID_SMU_RECORD.SMU FROM V_FLUID_SMU_RECORD其中V_FLUID_SMU_RECORD.TIMESTAMP TRUNC(SYSDATE-20)和TRUNC(SYSDATE)和V_FLUID_SMU_RECORD.SMU_Q> 2和V_FLUID_SMU_RECORD.MACHINE_N在('之间 144103"," 154114"," 154115"," 154116"," 174672"," 174673"," 174674"," 174675"," 174676"," 184622"," 184623"," 194615"," 194616" ,'204120','204129','224538','224539','304201','304202','304204','304206','304207','304215','304243','304244',' 304245','304246','304247','304248','304249','314264','314265','374276','374278','374279','374281','374282','374283' ," 374284"," 374285"," 005")

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

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


我正在运行当前脚本,但想添加一个if if then条件。

基于从业务对象中一个系统中获取的当前数据的以下类似内容,该机器被命名为" 005",所以我希望它在报告的输出上显示名称" P41205",我认为 如果V_FLUID_SMU_RECORD.MACHINE_N ='005'重命名为" P41205",则命令的谎言应该是。 然后将其添加到下面运行的脚本中。 这样可以代替机器名称吗?

选择V_FLUID_SMU_RECORD.MACHINE_N,V_FLUID_SMU_RECORD.TIMESTAMP,V_FLUID_SMU_RECORD.SMU_Q,V_FLUID_SMU_RECORD.SMU FROM V_FLUID_SMU_RECORD其中V_FLUID_SMU_RECORD.TIMESTAMP TRUNC(SYSDATE-20)和TRUNC(SYSDATE)和V_FLUID_SMU_RECORD.SMU_Q> 2和V_FLUID_SMU_RECORD.MACHINE_N在('之间 144103"," 154114"," 154115"," 154116"," 174672"," 174673"," 174674"," 174675"," 174676"," 184622"," 184623"," 194615"," 194616" ,'204120','204129','224538','224539','304201','304202','304204','304206','304207','304215','304243','304244',' 304245','304246','304247','304248','304249','314264','314265','374276','374278','374279','374281','374282','374283' ," 374284"," 374285"," 005")

付费偷看设置
发送
10条回答
悻福寶寶
1楼 · 2020-09-11 00:48.采纳回答

您好,丹尼尔

使用下面的语句代替SQL中的Select子句中的V_FLUID_SMU_RECORD.MACHINE_N。 它是Case,Right()和Replace()的组合。

情况
当正确(V_FLUID_SMU_RECORD.MACHINE_N,3)='005'然后替换(V_FLUID_SMU_RECORD.MACHINE_N,'005','P41205')
否则V_FLUID_SMU_RECORD.MACHINE_N
结束

如果数据库是SQL Server,则查询应该可以工作;如果使用其他数据库,则google可以查询每个函数的语法。 让我们知道是否有帮助。

谢谢,
Mahboob Mohammed

compass1988
2楼-- · 2020-09-11 00:42

Mahboob,

当添加到现有的SQL行中时,此方法不起作用。

它给出了一个错误"数据库错误:ORA-00933:SQL命令未正确结束。(IES 10901)

新格式看起来像这样并给出了错误

选择

V_FLUID_SMU_RECORD.MACHINE_N,

V_FLUID_SMU_RECORD.TIMESTAMP,

V_FLUID_SMU_RECORD.SMU_Q,

V_FLUID_SMU_RECORD.SMU

V_FLUID_SMU_RECORD

其中

V_FLUID_SMU_RECORD.TIMESTAMP>(从双中选择sysdate-1)

案例

当Right(V_FLUID_SMU_RECORD.MACHINE_N,3)='005'时,然后替换(V_FLUID_SMU_RECORD.MACHINE_N,'005','P41205')其他V_FLUID_SMU_RECORD.MACHINE_N结束

路亽曱_Ryan
3楼-- · 2020-09-11 00:47

Hi Daniel,

您在错误的地方使用了Case语句,请尝试此操作。

SELECT
Case
当Right(V_FLUID_SMU_RECORD.MACHINE_N,3)=' 005'然后替换(V_FLUID_SMU_RECORD.MACHINE_N,'005','P41205')
否则V_FLUID_SMU_RECORD.MACHINE_N
以'MACHINE_N'结尾,
V_FLUID_SMU_RECORD.MACHINE_N,
V_FLUID_SMU。 V_FLUID_SMU_RECORD.SMU_Q,
V_FLUID_SMU_RECORD.SMU

FROM
V_FLUID_SMU_RECORD

其中
V_FLUID_SMU_RECORD.TIMESTAMP>(从双中选择sysdate-1 p>如果您发现Right()和Replace()函数的语法有问题,只需用google搜索该数据库的语法,然后根据需要进行更新即可。

谢谢,
Mahboob Mohammed

lukcy2020
4楼-- · 2020-09-11 00:49

现在出现错误

数据库错误:在预期的位置找不到ORA-00923:FROM关键字。 (IES 10901)

clever101
5楼-- · 2020-09-11 00:49

Mahboob,

我已经编写了这样的脚本,但上面仍然存在FROM错误

选择

当Right(V_FLUID_SMU_RECORD.MACHINE_N,3)='005'时的情况,然后替换(V_FLUID_SMU_RECORD.MACHINE_N,'005','P41205')其他V_FLUID_SMU_RECORD.MACHINE_N结尾为'MACHINE_N',V_FLUID_S.MUSTA V_FLUID_SMU_RECORD.SMU

从V_FLUID_SMU_RECORD

其中TRUNC(sysdate-20)和TRUNC(sysdate)之间的V_FLUID_SMU_RECORD.TIMESTAMP和V_FLUID_SMU_RECORD.SMU_Q> 2

和V_FLUID_SMU_RECORD.MACHINE_N in

('005',

'P41206',

'144102',

'164607',

'174656',

'174657',

'174664',

'174665',

'174667',

'174677',

'194615',

'204120',

'204130',

'204133',

'204145',

'204146',

'204148',

'204149',

'214601',

'214602',

'214603',

'214604',

'214640',

'224534',

'314435',

'314436',

'324446',

'324449',

'344442',

'344480',

'344482',

'344483',

'404152',

'404153',

'404155',

'404156',

'404157',

'404158',

'404409',

'404424',

'404426',

'404439',

'404444',

'404605',

'404609',

'414755',

'414756',

'434751',

'464166',

'564163',

'564164',

'564169')

能不能别闹
6楼-- · 2020-09-11 00:58

我建议在报表级别使用replace()函数替换值。自定义sql的缺点是,如果将来有人在其中添加任何对象 Webi查询然后报告自定义sql将被默认sql覆盖。

wang628962
7楼-- · 2020-09-11 00:41

我该如何使用?

当我使用以下= Replace([Machine_N-FASR];'005';'P41205')

我在位置32收到日期或时间格式" P41205"的错误无效。 (IES10035)

一周热门 更多>