Hana 2.0 Except运算符出现子查询问题

2020-09-16 00:07发布

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

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


大家好,

上周迁移到Hana 2.0后,我们在使用Except运算符和Sub查询时遇到了问题。

问题是

当我运行以下查询时,我得到输出

从******中选择max(DTS)snap_dts

我得到的输出为2018-07-19 06:42:41

当我运行这样的查询

从****中选择PD_AC_NO,SVG_CPTL_F,其中DUMMY_RCNCL_PD_AC_F ='Y'和SNAP_DTS ='2018-07-19 06:42:41'




从****内部联接***在h.LOAN_AC_SQN = hs.LOAN_AC_SQN内部联接****在h.LOAN_AC_SQN = rhs.LOAN_AC_SQN内部联接*****中选择hs.loan_ac_no,rhs.svg_cptl_f 在tt.SAT_SQN = rhs.SAT_SQN上,其中hs.loan_ac_no像'D%'和tt.load_dts <='2018-07-19 06:42:41'和tt.load_end_dts>'2018-07-19 06:42: 41'和tt.bus_eff_dts <='2015-11-30 23:59:59'和tt.bus_ineff_dts>'2015-11-30 23:59:59'


上述查询绝对可以正常工作,并返回预期的零记录,但是当我用子查询替换第一个查询时,它返回10条记录不正确


像下面一样

从****中选择PD_AC_NO,SVG_CPTL_F,其中DUMMY_RCNCL_PD_AC_F ='Y'和SNAP_DTS =(从DMF2中选择max(DTS)snap_dts.FR_RDS_D_LOAN_PD_AC)

从****内部联接***在h.LOAN_AC_SQN = hs.LOAN_AC_SQN内部联接****在h.LOAN_AC_SQN = rhs.LOAN_AC_SQN内部联接*****中选择hs.loan_ac_no,rhs.svg_cptl_f 在tt.SAT_SQN = rhs.SAT_SQN上,其中hs.loan_ac_no像'D%'和tt.load_dts <='2018-07-19 06:42:41'和tt.load_end_dts>'2018-07-19 06:42: 41'和tt.bus_eff_dts <='2015-11-30 23:59:59'和tt.bus_ineff_dts>'2015-11-30 23:59:59'

任何帮助表示赞赏


谢谢

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

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


大家好,

上周迁移到Hana 2.0后,我们在使用Except运算符和Sub查询时遇到了问题。

问题是

当我运行以下查询时,我得到输出

从******中选择max(DTS)snap_dts

我得到的输出为2018-07-19 06:42:41

当我运行这样的查询

从****中选择PD_AC_NO,SVG_CPTL_F,其中DUMMY_RCNCL_PD_AC_F ='Y'和SNAP_DTS ='2018-07-19 06:42:41'




从****内部联接***在h.LOAN_AC_SQN = hs.LOAN_AC_SQN内部联接****在h.LOAN_AC_SQN = rhs.LOAN_AC_SQN内部联接*****中选择hs.loan_ac_no,rhs.svg_cptl_f 在tt.SAT_SQN = rhs.SAT_SQN上,其中hs.loan_ac_no像'D%'和tt.load_dts <='2018-07-19 06:42:41'和tt.load_end_dts>'2018-07-19 06:42: 41'和tt.bus_eff_dts <='2015-11-30 23:59:59'和tt.bus_ineff_dts>'2015-11-30 23:59:59'


上述查询绝对可以正常工作,并返回预期的零记录,但是当我用子查询替换第一个查询时,它返回10条记录不正确


像下面一样

从****中选择PD_AC_NO,SVG_CPTL_F,其中DUMMY_RCNCL_PD_AC_F ='Y'和SNAP_DTS =(从DMF2中选择max(DTS)snap_dts.FR_RDS_D_LOAN_PD_AC)

从****内部联接***在h.LOAN_AC_SQN = hs.LOAN_AC_SQN内部联接****在h.LOAN_AC_SQN = rhs.LOAN_AC_SQN内部联接*****中选择hs.loan_ac_no,rhs.svg_cptl_f 在tt.SAT_SQN = rhs.SAT_SQN上,其中hs.loan_ac_no像'D%'和tt.load_dts <='2018-07-19 06:42:41'和tt.load_end_dts>'2018-07-19 06:42: 41'和tt.bus_eff_dts <='2015-11-30 23:59:59'和tt.bus_ineff_dts>'2015-11-30 23:59:59'

任何帮助表示赞赏


谢谢

付费偷看设置
发送
3条回答
d56caomao
1楼-- · 2020-09-16 00:26

我们知道,除了set运算符对性能不好,但开发人员希望针对很少的查询使用它,我们要确保这是Hana 2.0 SPS3中的错误?

谢谢

梦想连接
2楼-- · 2020-09-16 00:47

查询缺少您从中选择的表名。 您能否构建一个显示相同行为的最小示例查询? 另外,请包括表定义和测试数据,以便可以重现。

lukcy2020
3楼-- · 2020-09-16 00:24

感谢Lars的答复,我认为我们现在对问题的实质有所了解,但不是 确定为什么这会在曾经在Hana 1.0中运行的Hana 2.0中发生

时间戳转换成功了

从****中选择PD_AC_NO,SVG_CPTL_F,其中DUMMY_RCNCL_PD_AC_F ='Y'-并且SNPST_DWH_DTS ='2018-07-19 06:42:41'和TO_TIMESTAMP(SNPST_DWH_DTS,'YYYY-MM-DD HH24:MI: SS.FF7')=(从*****中选择TO_TIMESTAMP(max(SNPST_DWH_DTS),'YYYY-MM-DD HH24:MI:SS.FF7')snap_dts

从h上的***内部连接****选择hs.loan_ac_no PD_AC_NO,rhs.svg_cptl_f SVG_CPTL_F-,tt.bus_eff_dts,tt.bus_ineff_dts LO.LOAN_AC_SQN = h上的hs.LOAN_AC_SQN内部连接**** LOAN_AC_SQN = rhs.LOAN_AC_SQN tt上的内部联接****。SAT_SQN = rhs.SAT_SQN其中hs.loan_ac_no像'D%'和TO_TIMESTAMP(tt.load_dts,'YYYY-MM-DD HH24:MI:SS.FF7') <= TO_TIMESTAMP('2018-07-19 06:42:41.0000000','YYYY-MM-DD HH24:MI:SS.FF7')和TO_TIMESTAMP(tt.load_end_dts,'YYYY-MM-DD HH24:MI:SS .FF7')> TO_TIMESTAMP('2018-07-19 06:42:41.0000000','YYYY-MM-DD HH24:MI:SS.FF7')和TO_TIMESTAMP(tt.bus_eff_dts,'YYYY-MM-DD HH24: MI:SS.FF7')<= TO_TIMESTAMP('2015-11-30 23:59:59.0000000','YYYY-MM-DD HH24:MI:SS.FF7')和TO_TIMESTAMP(tt.bus_ineff_dts,'YYYY-MM -DD HH24:MI:SS.FF7')> TO_TIMESTAMP('2015-11-30 23:59:59.0000000','YYYY-MM-DD HH24:MI:SS.FF7')

只需在整个查询中添加一致的TO_TIMESTAMP(column_name)YYYY-MM-DD HH24:MI:SS.FF7

我的问题现在是,我可以设置它们的任何设置以便我不想对所有查询进行吗?


谢谢

一周热门 更多>