ProTech's home page

ProTech-Online.com

IBM DB2 SQL code example to pull Quantus workorders by material codes.

CREATE PROCEDURE TEST_ASSEMBLY_MAT_CODES_WO (
    IN @CODE VARCHAR(1000)
)
SPECIFIC ASSEMBLY_MAT_CODES_WO
DYNAMIC RESULT SETS 1
LANGUAGE SQL
------------------------------------------------------------------------
-- SQL Stored Procedure
------------------------------------------------------------------------
P1: BEGIN
    DECLARE GLOBAL TEMPORARY TABLE SESSION.TEMP_ITEMNUM (ITEMNUM VARCHAR(32))
       ON COMMIT DELETE ROWS WITH REPLACE NOT LOGGED;
    BEGIN ATOMIC
       DECLARE cursor1 CURSOR WITH RETURN FOR
       SELECT
           LTRIM(QUANTUS.INVENTORY.ITEMNUM) AS ITEMNUM,
           TRIM(QUANTUS.INVENTORY.BRANCH) AS BRANCH,
           QUANTUS.ASSEMBLY_OPTION.OPCODE,
           CONCAT(QUANTUS.INVENTORY.DESCRIPTION1, QUANTUS.INVENTORY.DESCRIPTION2) AS DESCRIPTION,
           QUANTUS.ASSEMBLY_OPTION.TYPE,
           QUANTUS.INVENTORY.ITEMGROUP,
           QUANTUS.INVENTORY.ITEMSUBGROUP,
           QUANTUS.INVENTORY.SUBGROUP2,
           QUANTUS.INVENTORY.ITEMSORTGROUP1,
           QUANTUS.INVENTORY.ITEMSORTGROUP2,
           QUANTUS.INVENTORY.ITEMSORTGROUP3,
           QUANTUS.INVENTORY.LINETYPE,
           QUANTUS.INVENTORY.SOURCECODE,
           QUANTUS.INVENTORY.SOURCECODEPO
       FROM QUANTUS.ASSEMBLY_OPTION 
           RIGHT OUTER JOIN QUANTUS.INVENTORY ON
               QUANTUS.ASSEMBLY_OPTION.BRANCH = QUANTUS.INVENTORY.BRANCH
               AND QUANTUS.ASSEMBLY_OPTION.PARENTITEMNUM = QUANTUS.INVENTORY.ITEMNUM
       WHERE
           (UPPER(RTRIM(QUANTUS.ASSEMBLY_OPTION.OPCODE)) NOT LIKE UPPER(@CODE)
               OR QUANTUS.ASSEMBLY_OPTION.OPCODE IS NULL)
           AND (QUANTUS.ASSEMBLY_OPTION.PARENTITEMNUM NOT IN (SELECT * FROM SESSION.TEMP_ITEMNUM)
               OR QUANTUS.ASSEMBLY_OPTION.PARENTITEMNUM  IS NULL)
           AND (QUANTUS.ASSEMBLY_OPTION.TYPE = 'W'
               OR QUANTUS.ASSEMBLY_OPTION.TYPE IS NULL)
       ORDER BY QUANTUS.INVENTORY.ITEMNUM, QUANTUS.INVENTORY.BRANCH;
       INSERT INTO SESSION.TEMP_ITEMNUM (ITEMNUM)
           SELECT QUANTUS.ASSEMBLY_OPTION.PARENTITEMNUM
           FROM QUANTUS.ASSEMBLY_OPTION
           WHERE UPPER(RTRIM(QUANTUS.ASSEMBLY_OPTION.OPCODE)) LIKE UPPER(@CODE);
       -- Cursor left open for client application
       OPEN cursor1;
    END;

END P1



Copyright © 2013 ProTechs-Online.com; All rights reserved.