点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
我有两个作为子查询实现的属性字段。
住院治疗\住院时间\开始日期
(从double中选择smart_date(@Prompt(起始日期))
住院治疗\ Hosp Admsn时间\ 结束日期
(从double选择smart_date(@Prompt(结束日期)))
每个子查询调用一个Oracle函数( smart_date ),该函数将提示提供的符号值转换为日期/时间值。 例如," T-1"是"昨天",它是2019年4月3日(截至此发布之日)。
Homs Admsn Range in Range 过滤器中使用了两个属性字段:
@Select(医院住院\ Admsn时间\开始日期)和@Select(医院住院\ Admsn时间\结束日期)之间的@Select(医院住院时间)
子查询用于SELECT(允许在报表中显示实际日期)和WHERE(用于过滤日期/时间字段)中。
查询示例:
生成的SQL:
选择 部门组织 ,Count(Distinct(ENC.ID)) ,(从double选择SELECT smart_date(@Prompt(Starting Date))) ,(SELECT smart_date(@Prompt(Ending Date))+ 0.99999 FROM dual) 来自ENC 右外连接DEP ON(DEP.DEPT_ID = ENC.DEPT_ID) 哪里 ( (((ENC.ADMSN_TIME)之间((SELECT smart_date(@Prompt(Starting Date))FROM dual)))和((SELECT smart_date(@Prompt(Ending Date))+ 0.99999 FROM dual))) ) 通过...分组 部门组织 ,(从double选择SELECT smart_date(@Prompt(Starting Date))) ,(SELECT smart_date(@Prompt(Ending Date))+ 0.99999 FROM dual)
不幸的是,运行查询会导致Oracle错误:
ORA-22818:此处不允许使用子查询表达式
如果我从GROUP BY子句中删除子查询,查询将按预期工作:
选择 部门组织 ,Count(Distinct(ENC.ID)) ,(从double选择SELECT smart_date(@Prompt(Starting Date))) ,(SELECT smart_date(@Prompt(Ending Date))+ 0.99999 FROM dual) 来自ENC 右外连接DEP ON(DEP.DEPT_ID = ENC.DEPT_ID) 哪里 ( (((ENC.ADMSN_TIME)之间((SELECT smart_date(@Prompt(Starting Date))FROM dual)))和((SELECT smart_date(@Prompt(Ending Date))+ 0.99999 FROM dual))) ) 通过...分组 部门组织
是否可以配置属性,以便将它们包含在SELECT子句中,但不包括在GROUP BY子句中?
(48.8 kB)
尝试以下操作:创建一个包含提示逻辑的派生表,例如:
称之为" DT"。 现在将其加入到您的ENC表中,并嵌入BETWEEN逻辑:
这应该为您提供如下SQL:
(我假设您的提示参数不仅包含"开始日期"和"结束日期",但我保留了它们的原样)
一周热门 更多>