【问题标题】:Select Multiple Columns From deffrent Table to new table using procedure使用过程从不同表中选择多个列到新表
【发布时间】:2017-03-25 11:12:13
【问题描述】:

我有一个名为tmp_jobdetails 的新表,其中包含列

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

我想创建一个过程sp_detdetails 用于插入其他三个表中的列ms-product,tt_stkled,ms_principle

ms_principle 有列PRN_CODE ,PRN_NAME

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

ms_productPRN_CODE,PRODUCT_CODE,PRODUCT_NAME

这三个表的字段将被插入到表tmp_jobdetails中。

我是如何通过程序实现的。我想通过PRN_DATE 的范围调用该过程,日期是表tmp_jobdetails 中的一个字段。

【问题讨论】:

  • 请提供更多信息和一些具有预期输出的示例数据。另外,我猜你没有使用sql-servermysqloracle,所以请只选择相关标签。
  • 我通常只是为我的列命名以减少花费的时间

标签: oracle stored-procedures oracle11g


【解决方案1】:
  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;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-25
    • 1970-01-01
    • 1970-01-01
    • 2012-07-03
    • 2021-03-19
    • 1970-01-01
    • 1970-01-01
    • 2017-12-09
    相关资源
    最近更新 更多