2017-02-02 13 views
0

以下は、レポートを生成するために作成したSQLクエリです。このクエリは、毎日このクエリが実行されるようにサーバーでスケジュールされています。しかし、システムから自動化された電子メールを受け取ったとき、日付が1日目の毎月自動レポートデータは空です。ORACLE Database Reporting Issue

この問題を解決するのを手伝ってください。

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 

答えて

0

「毎月の日付が1日、自動レポートデータが空になっているとき、」

私たちはあなたのために、この問題を解決することは困難であり、あなたのビジネスルールやデータを知らず。しかし、この行は不審に見えるん:

and to_char(trunc(p.ext_date),'MONYY') in (select to_char(sysdate-1,'MONYY') from dual) 

をサブクエリが前の月戻ります月の最初に。多分それは正しいでしょう。それはext_dateの目的によって異なります。一方、投稿されたコードには、コメントアウトされている代替フィルタ(-1なし)があります。その月の初めに、現在の月が返されます。なぜそれはコメントアウトされていますか?誰かが正しいフィルタが何であるかはっきりしていなかったようです。

これは、データとビジネスルールを知ることに帰着します。それは私たちがあなたのために解決できるものではありません。あなたがドメインを理解していない場合は、組織内の誰かを見つける必要があります。