2016-11-11 14 views
-2

我有一個名爲新表選擇多列從deffrent表新表tmp_jobdetails其列使用過程

CMP_CODE,PRN_CODE ,PRN_NAME,PRN_DATE,SITECODE,LOCATIONCODE, JOB_NO,PRODUCT_CODE,PRODUCT_NAME,QTY_AVL 

我想創建一個過程sp_detdetails從其他三個表ms-producttt_stkled插入列,ms_principle

ms_principle有列PRN_CODE ,PRN_NAME

tt_stkledCMP_CODE,PRN_CODE,JOB_NO,PRN_DTAE,QTY_AVL,SITECODE,LOCATIONCODE

ms_product有列PRN_CODE,PRODUCT_CODE,PRODUCT_NAME

這三個表的字段將被插入到表tmp_jobdetails

我是如何通過一個過程。我想通過PRN_DATE的範圍調用該過程,日期是表tmp_jobdetails中的字段。

+1

請提供更多信息和一些樣本數據與預期輸出。另外,我猜你沒有使用'sql-server','mysql'和'oracle',所以請只選擇相關的標籤。 – Tanner

+0

我只是一般地分配我的列名,以減少花費的時間 –

回答

0
CREATE TABLE tmp_jobdetails 
(
    cmp_code  INTEGER 
    , prn_code  INTEGER 
    , prn_name  VARCHAR2 (10) 
    , sitecode  INTEGER 
    , location_code INTEGER 
    , job_no   INTEGER 
    , product_code INTEGER 
    , product_name VARCHAR2 (10) 
    , qty_avl   INTEGER 
); 

CREATE TABLE ms_principal 
(
    prn_code INTEGER 
    , prn_name VARCHAR2 (10) 
); 

CREATE TABLE tt_stkled 
(
    cmp_code  INTEGER 
    , prn_code  INTEGER 
    , job_no   INTEGER 
    , prn_date  DATE 
    , qty_avl   INTEGER 
    , sitecode  INTEGER 
    , location_code INTEGER 
); 

CREATE TABLE ms_product 
(
    prn_code  INTEGER 
    , product_code INTEGER 
    , product_name VARCHAR2 (10) 
); 

CREATE OR REPLACE PROCEDURE load_jobdetails 
AS 
    PRAGMA AUTONOMOUS_TRANSACTION; 
BEGIN 
    INSERT INTO tmp_jobdetails (
       cmp_code, prn_code, prn_name 
      , sitecode, location_code, job_no 
      , product_code, product_name, qty_avl 
       ) 
     SELECT tt.cmp_code 
      , tt.prn_code 
      , mp.prn_name 
      , tt.sitecode 
      , tt.location_code 
      , tt.job_no 
      , ms.product_code 
      , ms.product_name 
      , tt.qty_avl 
      FROM ms_principal mp 
       JOIN tt_stkled tt ON (mp.prn_code = tt.prn_code) 
       JOIN ms_product ms ON (ms.prn_code = mp.prn_code) 
       JOIN tt_stkled tt ON (tt.prn_code = mp.prn_code); 

    COMMIT; 
END;