不允许超过32天的数据

2020-08-19 05:49发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)需要一些具有晶体报告的帮助。 ...

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

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


需要一些具有晶体报告的帮助。

我的目标是仅在输入的日期范围大于32时不显示数据。如果除了我正在执行的操作之外,还有其他方法,请指导我。

我可以在其中一份报告中选择使用公式,但同一公式在另一份报告中无效。

新报告中的所有字段也都可用,但是给我一个错误"该公式无法使用,因为必须稍后对其进行评估"。

任何人都可以帮忙。

公式是

  {@日期差异} <= 32并且
  当前日期-{@开始日期} <= 60并且
  {Command.DATE_TRANSACTION} = {?Date}
  

更多详细信息:

  @date是我的参数。
 @开始日期是公式最小值(@dtransate)
 @结束日期是公式的最大值(@transdate)
 @date的区别是公式DateDiff(" d",{@开始日期},{@结束日期})+ 1  
13条回答
My梦
2020-08-19 06:07

尝试一下:

选择
   UL.UNIT_ID,
   案件
     当UL.ACTION_CODE = -1时'FROM ORDER'
     当UL.ACTION_CODE = 1时,即可"订购"
     否则为" 0"
   结束Order_Type,
   UL.ORDER_CODE,
   UL.ORDER_ITEM,
   UL1.ORDER_CODE ||'-'|| UL1.ORDER_ITEM UL1项目,
   UL.DATE_TRANSACTION,
   U.mass_estimated_net,
   U.mass_scaled网,
   U.mass_scaled_gross,
   U.ORDER_CODE CURRENT_ORDER,
   U.ORDER_ITEM CURRENT_ITEM,
   U.WAREHOUSE_CODE,
   U.WAREHOUSE_LOCATION
 从itiprd.UNITLOG UL
   内部连接itiprd.unit U
     在UL.unit_id = u.unit_id上
   内部连接itiprd.UNITLOG UL1
     在UL.DATE_TRANSACTION = UL1.DATE_TRANSACTION
       AND UL.UNIT_ID = UL1.UNIT_ID
       AND UL1.UNIT_TRANSACTION_TYPE ='TV'
       AND UL1.ACTION_CODE = 1
 UL.UNIT_TRANSACTION_TYPE ='TV'
   和UL.ACTION_CODE <> 1
   AND U.UNIT_STATUS ='WH'
   和Trunc({?StartDate})-Trunc({?EndDate})<= 32
   和Trunc(Sysdate)-Trunc({?StartDate})<= 60
   和UL.DATE_TRANSACTION> = {?StartDate}
   和UL.DATE_TRANSACTION <= {?EndDate} 

我对您的查询做了几件事:

-重新格式化以使其更具可读性。

-从Select中删除了子查询,而是使其成为联接。

-为case语句添加了别名,并串联了来自UL1的数据。

- 假定ACTION_CODE字段是数字,并删除了单引号。 如果字段类型是varchar或char,则需要放回它们。

-因为不需要它们,所以删除了Case语句周围的括号。

-调整了调用

我可能要验证查询的一件事是在数据库工具(例如Toad或PL/SQL Developer)中对其进行处理,以验证查询。 让您更清晰地了解任何错误所在。 为此,您可以将{?Parameter}语法更改为@Parameter。 然后,当您将其粘贴到Crystal的"命令编辑器"中时,必须将其更改回去。 另外,请确保不要在主报表的"字段浏览器"中的"命令编辑器"中创建参数!

此外,请注意,我是这里的志愿者-我不是SAP员工,我 我在美国,通常我不在周末工作(除非我正在为客户安装...)。 因此,如果我没有立即回应,请耐心等待。

一周热门 更多>