Skip to Main Content

SQL & PL/SQL

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Ignoring a column in select query but need to use as a join condition

JSMQJul 25 2018 — edited Jul 30 2018

Here i have this proc where i need to insert data into target table 4.In all these subqueries first_scan_issues/last_scan_issues/Prior_scan_issues where i need to join based on the scan_id but same time i should not use the scan_id in select query where the grouping result sets are splitting into more granularity.Even i tried with 'Partition by clause' it also gives more number of records. How can we avoid scan_id column and should use the same as join condition. Target table 4

CREATE OR REPLACE PROCEDURE PROC AS

BEGIN

INSERT INTO table4

  SELECT first_scan_issues.SOA_SECTOR,

        first_scan_issues.SOA_REGION,

        a.PROJECT,

        a.SOLUTION,

        first_scan_issues.CNT1,            

       first_scan_issues.CNT2,

       file_scans.CNT7,

       project_files_count.COUNT, 

        last_scan_issues.CNT3,

        last_scan_issues.CNT4,

        file_scans.CNT8,

       prior_scan_issues.CNT5,

        prior_scan_issues.CNT6,

         file_scans.CNT9,    

        CURRENT_DATE

      FROM( select PROJECT,SOLUTION,FIRST_SCAN_ID,LAST_SCAN_ID,PRIOR_SCAN_ID from table1 order by project

      )a

       LEFT OUTER JOIN

       (

       select SOA_SECTOR,SOA_REGION,PROJECT,SOLUTION,SCAN_ID,

         COUNT(DISTINCT ISSUE_ID) CNT3,

        COUNT(DISTINCT FILE_ID) CNT4

        from table2 group by SOA_SECTOR,SOA_REGION,PROJECT,SOLUTION,SCAN_ID

        ) first_scan_issues on first_scan_issues.SCAN_ID = a.FIRST_SCAN_ID AND first_scan_issues.PROJECT =a.PROJECT

      LEFT OUTER JOIN

      (

      select SOA_SECTOR,SOA_REGION,PROJECT,SOLUTION,SCAN_ID,

         COUNT(DISTINCT ISSUE_ID) CNT3,

        COUNT(DISTINCT FILE_ID) CNT4

        from table2 group by SOA_SECTOR,SOA_REGION,PROJECT,SOLUTION,SCAN_ID

        )last_scan_issues ON last_scan_issues.SCAN_ID = a.LAST_SCAN_ID AND last_scan_issues.PROJECT =a.PROJECT

      LEFT OUTER JOIN

      (

      select SOA_SECTOR,SOA_REGION,PROJECT,SOLUTION,SCAN_ID,

         COUNT(DISTINCT ISSUE_ID) CNT3,

        COUNT(DISTINCT FILE_ID) CNT4

        from table2 group by SOA_SECTOR,SOA_REGION,PROJECT,SOLUTION,SCAN_ID

      ) prior_scan_issues ON PRIOR_scan_issues.SCAN_ID = a.PRIOR_SCAN_ID AND prior_scan_issues.PROJECT =a.PROJECT

      LEFT OUTER JOIN

      (

      select project,solution, count(distinct FIRST_SCAN_ID) CNT7,

      count(distinct LAST_SCAN_ID) CNT8,count(distinct PRIOR_SCAN_ID) CNT9

      from table1 group by project,solution order by project

      )file_scans ON file_scans.PROJECT=a.PROJECT

       JOIN

      (

       SELECT  PROJECT,SOLUTION,SOA_SECTOR,SOA_REGION,

       COUNT(DISTINCT PATH) COUNT

       FROM table3

       GROUP BY  PROJECT,SOLUTION,SOA_SECTOR,SOA_REGION                        

       ) project_files_count

       ON project_files_count.PROJECT = a.PROJECT;

END;                      

       ) project_files_count

       ON project_files_count.PROJECT = a.PROJECT;

END;

table 4

SOA_SECTOR VARCHAR2(100 CHAR) 
SOA_REGION VARCHAR2
(100 CHAR)
PROJECT 
NOT NULL VARCHAR2(256 CHAR)
SOLUTION VARCHAR2
(256 CHAR)
FIRST_SCAN_ISSUE_CNT 
NOT NULL NUMBER(10)  
FIRST_FILES_WITH_ISSUES_CNT
NOT NULL NUMBER(10)  
FIRST_SCAN_FILE_CNT 
NOT NULL NUMBER(10)  
TOTAL_FILES_FOR_PROJECT_CNT
NOT NULL NUMBER(10)  
LAST_SCAN_ISSUE_CNT 
NOT NULL NUMBER(10)  
LAST_FILES_WITH_ISSUES_CNT 
NOT NULL NUMBER(10)  
LAST_SCAN_FILE_CNT 
NOT NULL NUMBER(10)  
PRIOR_SCAN_ISSUE_CNT 
NOT NULL NUMBER(10)  
PRIOR_FILE_WITH_ISSUES_CNT 
NOT NULL NUMBER(10)  
PRIOR_SCAN_FILE_CNT 
NOT NULL NUMBER(10)  
LOAD_DATE_TIME 
NOT NULL DATE

Comments

Processing
Locked Post
New comments cannot be posted to this locked post.

Post Details

Locked on Aug 27 2018
Added on Jul 25 2018
30 comments
1,399 views