下面是我为生成报告而编写的SQL查询,它是在服务器中调度的,所以每天都会执行这个查询。但是在每个月,当日期是1号时,当我们从系统收到自动电子邮件时,自动报告数据是空的。
请帮我解决这个问题。
set serveroutput on
clear screen
set feedback off
set verify off
spool d:\STO_AC_HCIN.txt
--spool /u14/manjula/STO_AC_HCIN.txt
set pagesize 1500
set linesize 150
column ff NOPRINT NEW_VALUE CURR_date
column gg NOPRINT NEW_VALUE CURR_time
column InvDate heading 'Inv_Date' FORMAT date
column Qty heading 'Qty' FORMAT 999999999
select to_char(sysdate, 'DD-MON-YYYY') ff,
to_char(sysdate, 'HH24:MI') gg
from dual;
TTITLE LEFT COL 25 'BILL CHECK STO AC HCIN ' skip 1 -
LEFT COL 25 'LOGIWIZ LIMITED-DLx/M WMS' skip 2 -
'Report Date : ' CURR_DATE skip 1 -
'Time : ' CURR_TIME skip 3 -
select to_char(trunc(p.ext_date),'DD/MM/YYYY') InvDate,
count(distinct (substr(p.loc,1,12))) +7 Qty -- Exclude sublocations
from prodloc_snap p,
sku s
where p.prod_no=s.prod_no
and s.comp_code='HC'
and s.prod_fam='HCIN'
and substr(p.loc,1,3) in ('R04','R06') -- Include only the AC racks
and s.sku not like '%TEST%'
and to_char(trunc(p.ext_date),'MONYY') in
(select to_char(sysdate-1,'MONYY') from dual)
--and to_char(trunc(p.ext_date),'MONYY')in (select to_char(sysdate,'MONYY') from dual)
group by to_char(trunc(p.ext_date),'DD/MM/YYYY')
repfooter skip 3 -
left col 25 '********* End Of Report ***********'
/
set feedback on
spool off
ttitle off
repfooter off发布于 2017-02-02 14:15:22
“日期为1号的每个月自动报表数据为空”
如果不了解您的业务规则或数据,我们很难为您解决此问题。但这一行看起来确实很可疑:
and to_char(trunc(p.ext_date),'MONYY') in (select to_char(sysdate-1,'MONYY') from dual)在该月的第一天,子查询将返回前一个月。也许这是对的。这取决于ext_date的用途。另一方面,您发布的代码有一个替代过滤器(没有-1),它被注释掉了。在该月的第一天返回当前月份。为什么它被注释掉了?似乎有人不太确定正确的过滤器是什么。
因此,这可以归结为了解您的数据和业务规则。这不是我们能为你解决的问题。如果你不了解这个领域,那么你需要在你的组织中找到了解这个领域的人。
https://stackoverflow.com/questions/41995142
复制相似问题