Quantcast
Channel: SCN: Message List
Viewing all articles
Browse latest Browse all 8557

Setting parameters for complex SQL query - InfoMaker 12.6

$
0
0

Hello,

 

To begin, I am not a SQL author and have very limited knowledge of writing queries, I’m also brand new to using the InfoMaker product.
The code below was written by my resident ‘smart guy’ and I need to create a report in InfoMaker. Please bear with me and my rookie status.

Using a composite report I have two queries and I would like to apply only one prompt for the user. The problem is that the code for one of
the reports is complex, so I’ve had to hardcode the Aircraft Tail number (201) into it to pull my data otherwise, I get the following error:

 

“Cannot apply criteria to a select statement with a union or nested select or nested report”

 

Question: How can I set a parameter for this code so that I can avoid hard coding the tail number?

 

Thanks!!

 

Here is the code;

 

WITH

      DIMAC AS

              (

              SELECT MANUFACTURE, AC_TYPE, REGEXP_SUBSTR(AC_DESCRIPTION,'[6-8]0{2}') AS AC_SERIES,
               AC_SN,  VARIABLE_ENGINEERING_NO,  EFFECTIVITY_CODE,  AC, AC_FLIGHT_HOURS, AC_FLIGHT_MINUTES, AC_CYCLES

            FROM ODB.AC_MASTER

            WHERE AC_TYPE='737' AND AC='201'

              )

             ,

       FPARTS AS

              (

               SELECT PM.PN_DESCRIPTION, PM."CATEGORY", PID.INSTALLED_AC, PM.ENGINE, PID.INSTALLED_POSITION,                       
TO_DATE(TO_CHAR(PID.INSTALLED_DATE,'MM/DD/YYYY') || ' ' ||
COALESCE(PID.INSTALLED_HOUR,0) || ':' || COALESCE(PID.INSTALLED_MINUTE,0) ||
':00','MM/DD/YYYY HH24:MI:SS') AS INSTALLED_DATE,

 

                            PIC.PN, PIC.SN, PIC.ACTUAL_HOURS,
PIC.ACTUAL_MINUTES,  PIC.ACTUAL_CYCLES,
PIC.ACTUAL_DAYS, PID.GOODS_RCVD_BATCH,

                          
DECODE(PM.ENGINE,'APU',6,'ENGINE',TO_NUMBER(REGEXP_SUBSTR(PID.INSTALLED_POSITION,'[1-2]')),

 

DECODE(SUBSTR(PM.PN_DESCRIPTION,1,3),'NLG',3,DECODE(MOD(ABS(REGEXP_SUBSTR(PID.PN,'-\d{2}$')),2),1,4,5)))

AS SORTID,

           
ROW_NUMBER() OVER(ORDER BY PID.GOODS_RCVD_BATCH) AS ROWPK

 

                FROM
ODB.PN_INVENTORY_CONTROL PIC INNER JOIN
(ODB.PN_MASTER PM INNER JOIN ODB.PN_INTERCHANGEABLE PI ON PM.PN = PI.PN
) ON PIC.PN = PI.PN_INTERCHANGEABLE

                                  
                 INNER JOIN
ODB.PN_INVENTORY_DETAIL PID ON PIC.PN = PID.PN AND PIC.SN = PID.SN

                                             
INNER JOIN DIMAC ON PID.INSTALLED_AC = DIMAC.AC

              
WHERE  (PM.STATUS='ACTIVE' AND
PM.CATEGORY ='ENG NG'  AND PM.ENGINE
IN('ENGINE','APU')) OR PM.PN_DESCRIPTION IN('NLG COMPONENT INSTL','MLG
COMPONENT INSTL') AND

                            
PIC.CONTROL = 'FROM NEW'

            )

             ,

 

    FPARTSZ AS

           (

               SELECT
FPARTS.INSTALLED_AC, FPARTS.INSTALLED_DATE, FPARTS.GOODS_RCVD_BATCH,
FPARTS.ROWPK

                FROM
FPARTS

                 WHERE
FPARTS.GOODS_RCVD_BATCH NOT IN(SELECT
APTH.GOODS_RCVD_BATCH

 

                                                                                   FROM
ODB.AC_PN_TRANSACTION_HISTORY APTH  INNER
JOIN FPARTS  ON APTH.GOODS_RCVD_BATCH =
FPARTS.GOODS_RCVD_BATCH

                                                                                   
WHERE TRANSACTION_TYPE = 'REMOVE'

                                                                                   
)

                           
AND FPARTS.INSTALLED_DATE<'15-JAN-2005'

              )

         ,    

      ZVALUE AS

              (

                 SELECT
SUM(AAF.FLIGHT_HOURS) + TRUNC(SUM(AAF.FLIGHT_MINUTES)/60) AS ZHRS,
MOD(SUM(AAF.FLIGHT_MINUTES),60) AS ZMIN, SUM(AAF.CYCLES) AS ZCYCLES,

                          
FPARTSZ.INSTALLED_DATE - MIN(AAF.FLIGHT_DATE) AS ZDAYS,
FPARTSZ.ROWPK                   

 

                FROM ODB.AC_ACTUAL_FLIGHTS AAF
INNER JOIN FPARTSZ ON AAF.AC = FPARTSZ.INSTALLED_AC

 

                WHERE
UPPER(AAF.FLIGHT_LOG)<>'Z' AND EXISTS (SELECT 1 FROM (SELECT
INSTALLED_AC,  INSTALLED_DATE,  ROWPK
FROM FPARTSZ )T1

 

                                                                                            WHERE
T1.INSTALLED_AC = AAF.AC AND FPARTSZ.ROWPK = T1.ROWPK AND

 

                                                                                                      
TO_DATE(TO_CHAR(AAF.FLIGHT_DATE,'MM/DD/YYYY')||'
'||TO_CHAR(AAF.OFF_HOUR)||':'||TO_CHAR(AAF.OFF_MINUTE)||':00','MM/DD/YYYY
HH24:MI:SS') <=  T1.INSTALLED_DATE

                                                                                       
)                                 

GROUP BY FPARTSZ.ROWPK, FPARTSZ.INSTALLED_DAT

 

           )

             ,

 

     TSIAF AS

         (

 

         SELECT
SUM(AAF.FLIGHT_HOURS) + TRUNC(SUM(AAF.FLIGHT_MINUTES)/60) AS TSIHRS,
MOD(SUM(AAF.FLIGHT_MINUTES),60) AS TSIMIN, SUM(AAF.CYCLES) AS TSICYCLES,


TRUNC(FROM_TZ(CAST(SYSDATE AS TIMESTAMP),'America/Edmonton') AT TIME
ZONE 'GMT')  - TRUNC(
FPARTS.INSTALLED_DATE) AS TSIDAYS,


FPARTS.ROWPK

 

        FROM
ODB.AC_ACTUAL_FLIGHTS AAF INNER JOIN FPARTS ON AAF.AC= FPARTS.INSTALLED_AC

 

        WHERE
FPARTS.ENGINE <>'APU' AND EXISTS (SELECT 1 FROM (SELECT
INSTALLED_AC,  INSTALLED_DATE,  ROWPK
FROM FPARTS )T1

                                                
WHERE T1.INSTALLED_AC = AAF.AC AND FPARTS.ROWPK = T1.ROWPK AND

                                                           
TO_DATE(TO_CHAR(AAF.FLIGHT_DATE,'MM/DD/YYYY')||'
'||TO_CHAR(AAF.OFF_HOUR)||':'||TO_CHAR(AAF.OFF_MINUTE)||':00','MM/DD/YYYY
HH24:MI:SS') >=  T1.INSTALLED_DATE

                                 )                                 

            GROUP BY  FPARTS.ROWPK, FPARTS.INSTALLED_DATE

          )

          ,

      TAPU AS

        (

 

        SELECT
SUM(T1.HOURS) + TRUNC(SUM(T1.MINUTES)/60) AS HOURS, MOD(SUM(T1.MINUTES),60) AS
MINUTES, SUM(T1.CYCLES) AS CYCLES,

                   
MAX(T1.ROWPK) AS ROWPK

          FROM(

                    
SELECT HOURS, MINUTES, CYCLES, FPARTS.ROWPK

                    
FROM ODB.PN_INVENTORY_TIMES_ACCRUAL PITA INNER JOIN FPARTS ON
PITA.GOODS_RCVD_BATCH = FPARTS.GOODS_RCVD_BATCH

                 
WHERE FPARTS.ENGINE='APU' AND UPPER(TRANSACTION_TYPE) IN('Z','ADD')

                      UNION ALL

                   
SELECT HOURS, MINUTES, CYCLES, FPARTS.ROWPK

                    
FROM ODB.PN_TIME_ADJUSTMENT PTA INNER JOIN FPARTS ON PTA.PN = FPARTS.PN
AND PTA.SN = FPARTS.SN

                    
WHERE FPARTS.ENGINE='APU'

                    )T1

         )

      

SELECT T1.INSTALLED_AC, T1.ENGINE, T1.INSTALLED_POSITION,
T1.PN_DESCRIPTION, T1.PN, T1.SN,

            
T1."CATEGORY",
T1.INSTALLED_DATE, T1.GOODS_RCVD_BATCH,

            
T1.TSN_HOURS, T1.TSN_MINUTES, T1.TSN_CYCLES, T1.TSN_DAYS

  FROM (

             SELECT
FPARTS.PN_DESCRIPTION, FPARTS."CATEGORY", FPARTS.INSTALLED_AC,
FPARTS.INSTALLED_DATE, FPARTS.GOODS_RCVD_BATCH,

                      
FPARTS.PN, FPARTS.SN,FPARTS.ENGINE, FPARTS.INSTALLED_POSITION,
FPARTS.SORTID,

                        
COALESCE(TSIAF.TSIHRS + (CASE WHEN ZVALUE.ROWPK IS NOT NULL THEN  ZVALUE.ZHRS ELSE FPARTS.ACTUAL_HOURS END) +

                        
TRUNC((TSIAF.TSIMIN + (CASE WHEN ZVALUE.ROWPK IS NOT NULL THEN  ZVALUE.ZMIN ELSE FPARTS.ACTUAL_MINUTES
END))/60),TAPU.HOURS)  AS TSN_HOURS,

                        
COALESCE(MOD(TSIAF.TSIMIN + (CASE WHEN ZVALUE.ROWPK IS NOT NULL
THEN  ZVALUE.ZMIN ELSE
FPARTS.ACTUAL_MINUTES END),60), TAPU.MINUTES) AS TSN_MINUTES,

                      
COALESCE(TSIAF.TSICYCLES + (CASE WHEN ZVALUE.ROWPK IS NOT NULL THEN  ZVALUE.ZCYCLES ELSE FPARTS.ACTUAL_CYCLES
END),TAPU.CYCLES) AS TSN_CYCLES,

                      
TSIAF.TSIDAYS + (CASE WHEN ZVALUE.ROWPK IS NOT NULL THEN  ZVALUE.ZDAYS ELSE FPARTS.ACTUAL_DAYS END) AS
TSN_DAYS

 

            FROM
FPARTS LEFT OUTER JOIN ZVALUE ON FPARTS.ROWPK = ZVALUE.ROWPK

 

                                  LEFT OUTER
JOIN TSIAF ON FPARTS.ROWPK = TSIAF.ROWPK

 

                                  LEFT OUTER JOIN TAPU ON
FPARTS.ROWPK = TAPU.ROWPK

 

        )T1

 

ORDER BY T1.SORTID


Viewing all articles
Browse latest Browse all 8557

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>