Outer Join issue in SSRS

Symptom description:
I have a Department table and an Employee table. In Department table, Deptno is the primary key. In Employee table, Empid is the primary key and Deptno is a foreign key pointing to Deptno of Department table.
Using BIDS, I have created a Data Source View (DSV) incorporating the above two tables and a relationship is also formed where Employee is the source and Department is the destination. I have then autogenerated a Report Model (.smdl) using the DSV.
Now, when I select attributes from both Department entity and Employee entity in Report Builder 3.0, the query generated by Report Builder fetches only those records from Department for which an employee exists.
My objective is to fetch all records from Department when Department is joined with Employee irrespective of whether an employee exists or not for that department. How can this be achieved?
Given below is the query generated by Report Builder:
SELECT DISTINCT
    "DEPT"."DepartmentNo" "DepartmentNo",
    "DEPT"."DepartmentDepartmentName" "DepartmentDepartmentName",
    "DEPT"."City" "City",
    "EMP"."EMPID" "EmployeeID",
    "EMP"."EMP_NAME" "EmployeeName",
    "EMP"."SALARY" "Salary"
FROM
    "CLINICOPIA_REPORTS"."EMP" "EMP"
    LEFT OUTER JOIN (
        SELECT /*+ NO_MERGE */
            "DEPT"."DEPTNO" "DepartmentNo",
            "DEPT"."DEPT_NAME" "DepartmentDepartmentName",
            "DEPT"."CITY" "City",
            "DEPT"."DEPTNO" "DEPTNO"
        FROM
            "CLINICOPIA_REPORTS"."DEPT" "DEPT"
    ) "DEPT" ON "EMP"."DEPTNO" = "DEPT"."DEPTNO"
WHERE
    CAST(1 AS NUMERIC(1,0)) = 1
ORDER BY
    "DepartmentNo", "DepartmentDepartmentName", "City", "EmployeeID", "EmployeeName", "Salary";
Environment: SharePoint 2010 serves as the Web Front-End Server and also hosts Reporting Services Add-in. SQL Server 2008 R2 SP2 is the Back-End Server hosting Sql Server Reporting Services
(SSRS) in SharePoint Integrated mode. The data is fetched in the Report Builder 3.0 reports from an Oracle database.
Environment details-
Web Front-End Server: SharePoint Server 2010 with Enterprise Client Access License features. Operating System is Microsoft Windows Server 2008 R2 Standard - 64 Bit.
Back-End Database Server: SQL Server 2008 R2 Enterprise SP2. Operating System is Microsoft Windows Server 2008 R2 Standard - 64 Bit.
Oracle Database Server: Operating System is Red Hat Enterprise Linux Server release 5 (Tikanga). Oracle Database version is Oracle Database 10g R2 Enterprise Edition Release 10.2.0.2.0 - Production.

Setting the Cardinality of Department > Employee role to OptionalOne
gives rise to cartesian join (which is a bigger issue).
Therefore, the Cardinality of Department > Employee role should remain as
OptionalMany (default).
This means, the outer join problem still remains unsolved. I have, therefore,
unmarked the above answer by me.
The question is - why has Report Builder been designed in such a way that the primary entity is always the child entity when attributes are selected from both parent and child entities?
Most people desire that all the rows of the parent entity be fetched irrespective of whether there are corresponding rows in the child entity or not. Report Builder tool should not dictate what the user wants to get, meaning it is not right to assume
that the focus of the report is Employee when attributes are selected from both Department and Employee. Report Builder should not make the child entity (i.e., Employee) as the primary entity when the user selects attributes from the child entity after
having selected attributes from the parent entity.
I am sorry to say that clients may not accept the Report Builder tool as this does not fetch the records as desired.
I hope there is someone who can suggest how the outer join problem can be solved by just tweaking the properties of the report model (SMDL).
Besides, the end users are business users and are not tech savvy. They are not expected to modify queries. They would simply drag and drop attributes from entities to create adhoc reports.

Similar Messages

  • Using Command to fix null / left outer join issue

    Hi
    I was told awhile ago that it's possible to fix crystal's issue with left outer join and null records being eliminated.
    I think i remember most of how this goes, but i can't seem to duplicate it.
    1) You can't have any select expert -- record
    2) You create the report normally and then make a new report using the SQL Query
         - Can't remember if its the whole report or upto the tables that have hisotry (null results)
    3) You move parts from WHERE to FROM
    Hopefully someone can help correct the steps i'm doing wrong or add what i'm missing from this.
    Below is the Query from my comlpeted report, but when i run it with the last LEFT OUTER JOIN added it removes all the products with no sales during that year.
    Any help would be greatly appreciated even if it's to say this can't be done.
    SELECT
    "prod_warehouse"."pw_whs_id",
    "prod_warehouse"."pw_prodline_id",
    "prod_warehouse"."pw_prod_id",
    "prod_warehouse"."pw_bin_location1",
    "prod_warehouse"."pw_min_onhand_qty",
    "prod_warehouse"."pw_max_onhand_qty",
    "prod_warehouse"."pw_onhand_qty",
    "product_lookup"."prlkp_lang1_1_desc",
    "prod_customer"."prcu_cust_part_num",
    "contract_details"."cond_level1_amt",
    "sales_history"."sah_year"
    FROM   (((("sisl_data05"."dbo"."products" "products"
    LEFT OUTER  JOIN "sisl_data05"."dbo"."prod_warehouse" "prod_warehouse"
    ON ("products"."pr_prod_id"="prod_warehouse"."pw_prod_id")
    AND ("products"."pr_prodline_id"="prod_warehouse"."pw_prodline_id"))
    LEFT OUTER JOIN "sisl_data05"."dbo"."product_lookup" "product_lookup"
    ON ("products"."pr_prod_id"="product_lookup"."prlkp_prod_id")
    AND ("products"."pr_prodline_id"="product_lookup"."prlkp_prodline_id"))
    LEFT OUTER JOIN "sisl_data05"."dbo"."prod_customer" "prod_customer"
    ON ("products"."pr_prod_id"="prod_customer"."prcu_prod_id")
    AND ("products"."pr_prodline_id"="prod_customer"."prcu_prodline_id"))
    LEFT OUTER JOIN "sisl_data05"."dbo"."contract_details" "contract_details"
    ON "prod_warehouse"."pw_prod_id"="contract_details"."cond_prod_id")
    LEFT OUTER JOIN "sisl_data05"."dbo"."sales_history" "sales_history"
    ON (("prod_warehouse"."pw_whs_id"="sales_history"."sah_sortkey1")
    AND ("prod_warehouse"."pw_prod_id"="sales_history"."sah_sortkey2"))
    AND ("prod_warehouse"."pw_prodline_id"="sales_history"."sah_sortkey3")
    WHERE
    "prod_warehouse"."pw_whs_id"='20123'
    AND ("prod_warehouse"."pw_onhand_qty"<>0
    OR "prod_warehouse"."pw_bin_location1"<>'  '
    OR "prod_warehouse"."pw_max_onhand_qty">0)
    AND "sales_history"."sah_year"=2014
    ORDER BY "prod_warehouse"."pw_bin_location1", "prod_warehouse"."pw_prod_id"

    Try this:
    SELECT
    prod_warehouse.pw_whs_id,
    prod_warehouse.pw_prodline_id,
    prod_warehouse.pw_prod_id,
    prod_warehouse.pw_bin_location1,
    prod_warehouse.pw_min_onhand_qty,
    prod_warehouse.pw_max_onhand_qty,
    prod_warehouse.pw_onhand_qty,
    product_lookup.prlkp_lang1_1_desc,
    prod_customer.prcu_cust_part_num,
    contract_details.cond_level1_amt,
    sales_history.sah_year
    FROM sisl_data05.dbo.products products
      LEFT OUTER  JOIN sisl_data05.dbo.prod_warehouse prod_warehouse
        ON products.pr_prod_id=prod_warehouse.pw_prod_id
        AND products.pr_prodline_id=prod_warehouse.pw_prodline_id
      LEFT OUTER JOIN sisl_data05.dbo.product_lookup product_lookup
        ON products.pr_prod_id=product_lookup.prlkp_prod_id)
        AND products.pr_prodline_id=product_lookup.prlkp_prodline_id
      LEFT OUTER JOIN sisl_data05.dbo.prod_customer prod_customer
        ON products.pr_prod_id=prod_customer.prcu_prod_id
        AND products.pr_prodline_id=prod_customer.prcu_prodline_id
      LEFT OUTER JOIN sisl_data05.dbo.contract_details contract_details
        ON prod_warehouse.pw_prod_id=contract_details.cond_prod_id
      LEFT OUTER JOIN sisl_data05.dbo.sales_history sales_history
        ON prod_warehouse.pw_whs_id=sales_history.sah_sortkey1
        AND prod_warehouse.pw_prod_id=sales_history.sah_sortkey2
        AND prod_warehouse.pw_prodline_id=sales_history.sah_sortkey3
        AND sales_history.sah_year = 2014
    WHERE prod_warehouse.pw_whs_id='20123'
      AND (prod_warehouse.pw_onhand_qty<>0
        OR prod_warehouse.pw_bin_location1<>'  '
        OR prod_warehouse.pw_max_onhand_qty>0)
    Take a look at what I've done with the last line of the last join.  The issue is that when you left join to a table and you use that table in the Where clause, you've basically turned your you left outer join into an inner join because the record has to be there in order to get the value in the filter.  By moving the filter into the join, you'll still get the rest of the data when there is no corresponding record.
    NOTE:  Crystal adds all sorts of "extra" stuff like quotes and parentheses that you don't need and which I have removed to make the query easier to read.
    -Dell

  • BISE1 Outer Join issues

    Hi, another issue I'm running in to using BISE1. I've got a simple star-schema relational model, basically copying it straight into the business layer without any adjustments.
    I have a dimension (DIM_MEASURES) that I need to have outer join - i.e. on any report, I ALWAYS want to see every value of DIM_MEASURES, even if no data exists in the fact tables for some of the values.
    I've gone in to the business model and changed the complex join to LEFT OUTER, RIGHT OUTER, and FULL OUTER - and I can't get ANY of these to return all rows of the dimension.
    Am I doing something wrong, or is this a bug?
    Thx,
    Scott

    Hi Scott,
    My guess is that it should work that way. Maybe you can inspect your Query log file and find out which select statement is produced.
    Good Luck,
    Daan Bakboord

  • Left outer join issue, please help

    Hi All,
    My oracle DB : 10G
    I have 3 tables:
    1) w_orders_fs
    2) w_product_d
    3) w_order_f
    (Below are the scripts for creating these 3 tables along with data)
    I have a sql which :
    select o_fs.invoice_number
           , o_fs.product_id o_fs_product_id
           , p_d.product_id p_d_product_id
           , p_d.row_wid_skey p_d_row_wid_skey
           , o_f.product_wid_skey
    from w_orders_fs o_fs
         , w_product_d  p_d
         , w_orders_f o_f
    where o_fs.invoice_number = 10
          and o_fs.product_id = p_d.product_id(+)
          and p_d.current_flg = 'Y'
          and p_d.row_wid_skey = o_f.product_wid_skey(+)
          and o_f.invoice_number = 10
    which is giving me an output :
    INVOICE_NUMBER|O_FS_PRODUCT_ID|P_D_PRODUCT_ID|P_D_ROW_WID_SKEY|PRODUCT_WID_SKEY
    10|2|2|4|4
    Desired output:
    INVOICE_NUMBER|O_FS_PRODUCT_ID|P_D_PRODUCT_ID|P_D_ROW_WID_SKEY|PRODUCT_WID_SKEY
    10|2|2|4|4
    10|1|1|3|NULL
    Now the overall objective is to pull the 2nd record of my desired output, my above query is not giving me this 2nd record since in my w_orders_f table product_wid_skey is not populated(one of the 2 records where invoice number = 10), I am just confused how to achieve this left outer join.
    Please help.
    Regards
    Rahul
    CREATE/INSERT  SCRIPTS:
    CREATE TABLE W_ORDERS_FS
      INVOICE_NUMBER        NUMBER(3),
      INVOICE_DT            DATE,
      CREATED_BY            NUMBER(6),
      CREATED_ON_DT         DATE,
      CHANGED_BY            NUMBER(6),
      CHANGED_ON_DT         DATE,
      LAST_UPDATE_DT        DATE,
      CUSTOMER_ID           NUMBER(6),
      PRODUCT_ID            NUMBER(2),
      PRICE_PER_UNIT        NUMBER(5),
      STORE_ID              NUMBER(4),
      OTY_ORDERED           NUMBER(5),
      TOT_PRICE_BY_PRODUCT  NUMBER,
      ETL_PROC_WID          VARCHAR2(100 BYTE),
      DATASOURCE_NUM_ID     INTEGER
    Insert into W_ORDERS_FS
       (INVOICE_NUMBER, INVOICE_DT, CREATED_BY, CREATED_ON_DT, LAST_UPDATE_DT, CUSTOMER_ID, PRODUCT_ID, PRICE_PER_UNIT, STORE_ID, OTY_ORDERED, TOT_PRICE_BY_PRODUCT, ETL_PROC_WID, DATASOURCE_NUM_ID)
    Values
       (10, TO_DATE('05/28/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 19, TO_DATE('05/28/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), TO_DATE('05/28/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 160, 1, 8, 1000, 10, 80, '22858060', 1);
    Insert into W_ORDERS_FS
       (INVOICE_NUMBER, INVOICE_DT, CREATED_BY, CREATED_ON_DT, LAST_UPDATE_DT, CUSTOMER_ID, PRODUCT_ID, PRICE_PER_UNIT, STORE_ID, OTY_ORDERED, TOT_PRICE_BY_PRODUCT, ETL_PROC_WID, DATASOURCE_NUM_ID)
    Values
       (10, TO_DATE('05/28/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 19, TO_DATE('05/28/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), TO_DATE('05/28/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 160, 2, 25, 1000, 10, 250, '22858060', 1);
    Insert into W_ORDERS_FS
       (INVOICE_NUMBER, INVOICE_DT, CREATED_BY, CREATED_ON_DT, LAST_UPDATE_DT, CUSTOMER_ID, PRODUCT_ID, PRICE_PER_UNIT, STORE_ID, OTY_ORDERED, TOT_PRICE_BY_PRODUCT, ETL_PROC_WID, DATASOURCE_NUM_ID)
    Values
       (11, TO_DATE('05/28/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 20, TO_DATE('05/28/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), TO_DATE('05/28/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 161, 6, 9, 1100, 10, 90, '22858060', 1);
    Insert into W_ORDERS_FS
       (INVOICE_NUMBER, INVOICE_DT, CREATED_BY, CREATED_ON_DT, LAST_UPDATE_DT, CUSTOMER_ID, PRODUCT_ID, PRICE_PER_UNIT, STORE_ID, OTY_ORDERED, TOT_PRICE_BY_PRODUCT, ETL_PROC_WID, DATASOURCE_NUM_ID)
    Values
       (12, TO_DATE('05/28/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 21, TO_DATE('05/28/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), TO_DATE('05/28/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 164, 5, 10, 1500, 10, 100, '22858060', 1);
    Insert into W_ORDERS_FS
       (INVOICE_NUMBER, INVOICE_DT, CREATED_BY, CREATED_ON_DT, LAST_UPDATE_DT, CUSTOMER_ID, PRODUCT_ID, PRICE_PER_UNIT, STORE_ID, OTY_ORDERED, TOT_PRICE_BY_PRODUCT, ETL_PROC_WID, DATASOURCE_NUM_ID)
    Values
       (13, TO_DATE('05/28/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 22, TO_DATE('05/28/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), TO_DATE('05/28/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 163, 5, 10, 2000, 10, 100, '22858060', 1);
    Insert into W_ORDERS_FS
       (INVOICE_NUMBER, INVOICE_DT, CREATED_BY, CREATED_ON_DT, LAST_UPDATE_DT, CUSTOMER_ID, PRODUCT_ID, PRICE_PER_UNIT, STORE_ID, OTY_ORDERED, TOT_PRICE_BY_PRODUCT, ETL_PROC_WID, DATASOURCE_NUM_ID)
    Values
       (14, TO_DATE('05/28/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 23, TO_DATE('05/28/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), TO_DATE('05/28/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 164, 1, 8, 1400, 20, 160, '22858060', 1);
    Insert into W_ORDERS_FS
       (INVOICE_NUMBER, INVOICE_DT, CREATED_BY, CREATED_ON_DT, LAST_UPDATE_DT, CUSTOMER_ID, PRODUCT_ID, PRICE_PER_UNIT, STORE_ID, OTY_ORDERED, TOT_PRICE_BY_PRODUCT, ETL_PROC_WID, DATASOURCE_NUM_ID)
    Values
       (15, TO_DATE('05/28/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 19, TO_DATE('05/28/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), TO_DATE('05/28/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 162, 2, 25, 2200, 5, 125, '22858060', 1);
    Insert into W_ORDERS_FS
       (INVOICE_NUMBER, INVOICE_DT, CREATED_BY, CREATED_ON_DT, LAST_UPDATE_DT, CUSTOMER_ID, PRODUCT_ID, PRICE_PER_UNIT, STORE_ID, OTY_ORDERED, TOT_PRICE_BY_PRODUCT, ETL_PROC_WID, DATASOURCE_NUM_ID)
    Values
       (15, TO_DATE('05/28/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 19, TO_DATE('05/28/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), TO_DATE('05/28/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 162, 6, 9, 2200, 5, 45, '22858060', 1);
    Insert into W_ORDERS_FS
       (INVOICE_NUMBER, INVOICE_DT, CREATED_BY, CREATED_ON_DT, LAST_UPDATE_DT, CUSTOMER_ID, PRODUCT_ID, PRICE_PER_UNIT, STORE_ID, OTY_ORDERED, TOT_PRICE_BY_PRODUCT, ETL_PROC_WID, DATASOURCE_NUM_ID)
    Values
       (15, TO_DATE('05/28/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 19, TO_DATE('05/28/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), TO_DATE('05/28/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 162, 5, 10, 2200, 5, 50, '22858060', 1);
    Insert into W_ORDERS_FS
       (INVOICE_NUMBER, INVOICE_DT, CREATED_BY, CREATED_ON_DT, LAST_UPDATE_DT, CUSTOMER_ID, PRODUCT_ID, PRICE_PER_UNIT, STORE_ID, OTY_ORDERED, TOT_PRICE_BY_PRODUCT, ETL_PROC_WID, DATASOURCE_NUM_ID)
    Values
       (15, TO_DATE('05/28/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 19, TO_DATE('05/28/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), TO_DATE('05/28/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 162, 1, 8, 2200, 5, 40, '22858060', 1);
    Insert into W_ORDERS_FS
       (INVOICE_NUMBER, INVOICE_DT, CREATED_BY, CREATED_ON_DT, LAST_UPDATE_DT, CUSTOMER_ID, PRODUCT_ID, PRICE_PER_UNIT, STORE_ID, OTY_ORDERED, TOT_PRICE_BY_PRODUCT, ETL_PROC_WID, DATASOURCE_NUM_ID)
    Values
       (16, TO_DATE('05/28/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 22, TO_DATE('05/28/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), TO_DATE('06/14/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 165, 3, 10, 2200, 15, 150, '22858060', 1);
    Insert into W_ORDERS_FS
       (INVOICE_NUMBER, INVOICE_DT, CREATED_BY, CREATED_ON_DT, LAST_UPDATE_DT, CUSTOMER_ID, PRODUCT_ID, PRICE_PER_UNIT, STORE_ID, OTY_ORDERED, TOT_PRICE_BY_PRODUCT, ETL_PROC_WID, DATASOURCE_NUM_ID)
    Values
       (16, TO_DATE('05/28/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 22, TO_DATE('05/28/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), TO_DATE('06/14/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 165, 1, 8, 2200, 25, 200, '22858060', 1);
    Insert into W_ORDERS_FS
       (INVOICE_NUMBER, INVOICE_DT, CREATED_BY, CREATED_ON_DT, LAST_UPDATE_DT, CUSTOMER_ID, PRODUCT_ID, PRICE_PER_UNIT, STORE_ID, OTY_ORDERED, TOT_PRICE_BY_PRODUCT, ETL_PROC_WID, DATASOURCE_NUM_ID)
    Values
       (16, TO_DATE('05/28/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 22, TO_DATE('05/28/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), TO_DATE('06/14/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 165, 4, 1, 2200, 55, 55, '22858060', 1);
    Insert into W_ORDERS_FS
       (INVOICE_NUMBER, INVOICE_DT, CREATED_BY, CREATED_ON_DT, LAST_UPDATE_DT, CUSTOMER_ID, PRODUCT_ID, PRICE_PER_UNIT, STORE_ID, OTY_ORDERED, TOT_PRICE_BY_PRODUCT, ETL_PROC_WID, DATASOURCE_NUM_ID)
    Values
       (16, TO_DATE('05/28/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 22, TO_DATE('05/28/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), TO_DATE('06/14/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 162, 5, 10, 2200, 55, 550, '22858060', 1);
    Insert into W_ORDERS_FS
       (INVOICE_NUMBER, INVOICE_DT, CREATED_BY, CREATED_ON_DT, LAST_UPDATE_DT, CUSTOMER_ID, PRODUCT_ID, PRICE_PER_UNIT, STORE_ID, OTY_ORDERED, TOT_PRICE_BY_PRODUCT, ETL_PROC_WID, DATASOURCE_NUM_ID)
    Values
       (17, TO_DATE('06/14/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 22, TO_DATE('06/14/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), TO_DATE('06/14/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 160, 1, 8, 1000, 10, 80, '22858060', 1);
    Insert into W_ORDERS_FS
       (INVOICE_NUMBER, INVOICE_DT, CREATED_BY, CREATED_ON_DT, LAST_UPDATE_DT, CUSTOMER_ID, PRODUCT_ID, PRICE_PER_UNIT, STORE_ID, OTY_ORDERED, TOT_PRICE_BY_PRODUCT, ETL_PROC_WID, DATASOURCE_NUM_ID)
    Values
       (17, TO_DATE('06/14/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 22, TO_DATE('06/14/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), TO_DATE('06/14/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 160, 7, 10, 1000, 10, 100, '22858060', 1);
    Insert into W_ORDERS_FS
       (INVOICE_NUMBER, INVOICE_DT, CREATED_BY, CREATED_ON_DT, LAST_UPDATE_DT, CUSTOMER_ID, PRODUCT_ID, PRICE_PER_UNIT, STORE_ID, OTY_ORDERED, TOT_PRICE_BY_PRODUCT, ETL_PROC_WID, DATASOURCE_NUM_ID)
    Values
       (18, TO_DATE('06/14/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 19, TO_DATE('06/14/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), TO_DATE('06/14/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 161, 1, 8, 1400, 10, 80, '22858060', 1);
    Insert into W_ORDERS_FS
       (INVOICE_NUMBER, INVOICE_DT, CREATED_BY, CREATED_ON_DT, LAST_UPDATE_DT, CUSTOMER_ID, PRODUCT_ID, PRICE_PER_UNIT, STORE_ID, OTY_ORDERED, TOT_PRICE_BY_PRODUCT, ETL_PROC_WID, DATASOURCE_NUM_ID)
    Values
       (18, TO_DATE('06/14/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 19, TO_DATE('06/14/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), TO_DATE('06/14/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 161, 7, 10, 1400, 10, 100, '22858060', 1);
    Insert into W_ORDERS_FS
       (INVOICE_NUMBER, INVOICE_DT, CREATED_BY, CREATED_ON_DT, LAST_UPDATE_DT, CUSTOMER_ID, PRODUCT_ID, PRICE_PER_UNIT, STORE_ID, OTY_ORDERED, TOT_PRICE_BY_PRODUCT, ETL_PROC_WID, DATASOURCE_NUM_ID)
    Values
       (19, TO_DATE('06/14/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 19, TO_DATE('06/14/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), TO_DATE('06/14/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 162, 3, 10, 1100, 10, 100, '22858060', 1);
    Insert into W_ORDERS_FS
       (INVOICE_NUMBER, INVOICE_DT, CREATED_BY, CREATED_ON_DT, LAST_UPDATE_DT, CUSTOMER_ID, PRODUCT_ID, PRICE_PER_UNIT, STORE_ID, OTY_ORDERED, TOT_PRICE_BY_PRODUCT, ETL_PROC_WID, DATASOURCE_NUM_ID)
    Values
       (19, TO_DATE('06/14/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 19, TO_DATE('06/14/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), TO_DATE('06/14/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 162, 4, 1, 1100, 10, 10, '22858060', 1);
    Insert into W_ORDERS_FS
       (INVOICE_NUMBER, INVOICE_DT, CREATED_BY, CREATED_ON_DT, LAST_UPDATE_DT, CUSTOMER_ID, PRODUCT_ID, PRICE_PER_UNIT, STORE_ID, OTY_ORDERED, TOT_PRICE_BY_PRODUCT, ETL_PROC_WID, DATASOURCE_NUM_ID)
    Values
       (20, TO_DATE('06/14/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 20, TO_DATE('06/14/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), TO_DATE('06/14/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 165, 5, 10, 3200, 10, 100, '22858060', 1);
    Insert into W_ORDERS_FS
       (INVOICE_NUMBER, INVOICE_DT, CREATED_BY, CREATED_ON_DT, LAST_UPDATE_DT, CUSTOMER_ID, PRODUCT_ID, PRICE_PER_UNIT, STORE_ID, OTY_ORDERED, TOT_PRICE_BY_PRODUCT, ETL_PROC_WID, DATASOURCE_NUM_ID)
    Values
       (20, TO_DATE('06/14/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 20, TO_DATE('06/14/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), TO_DATE('06/14/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 165, 6, 9, 3200, 10, 90, '22858060', 1);
    Insert into W_ORDERS_FS
       (INVOICE_NUMBER, INVOICE_DT, CREATED_BY, CREATED_ON_DT, LAST_UPDATE_DT, CUSTOMER_ID, PRODUCT_ID, PRICE_PER_UNIT, STORE_ID, OTY_ORDERED, TOT_PRICE_BY_PRODUCT, ETL_PROC_WID, DATASOURCE_NUM_ID)
    Values
       (21, TO_DATE('06/14/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 21, TO_DATE('06/14/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), TO_DATE('06/14/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 164, 8, 5, 3200, 10, 50, '22858060', 1);
    Insert into W_ORDERS_FS
       (INVOICE_NUMBER, INVOICE_DT, CREATED_BY, CREATED_ON_DT, LAST_UPDATE_DT, CUSTOMER_ID, PRODUCT_ID, PRICE_PER_UNIT, STORE_ID, OTY_ORDERED, TOT_PRICE_BY_PRODUCT, ETL_PROC_WID, DATASOURCE_NUM_ID)
    Values
       (21, TO_DATE('06/14/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 21, TO_DATE('06/14/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), TO_DATE('06/14/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 164, 2, 25, 3200, 10, 250, '22858060', 1);
    Insert into W_ORDERS_FS
       (INVOICE_NUMBER, INVOICE_DT, CREATED_BY, CREATED_ON_DT, LAST_UPDATE_DT, CUSTOMER_ID, PRODUCT_ID, PRICE_PER_UNIT, STORE_ID, OTY_ORDERED, TOT_PRICE_BY_PRODUCT, ETL_PROC_WID, DATASOURCE_NUM_ID)
    Values
       (21, TO_DATE('06/14/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 21, TO_DATE('06/14/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), TO_DATE('06/14/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 164, 9, 1, 3200, 10, 10, '22858060', 1);
    Insert into W_ORDERS_FS
       (INVOICE_NUMBER, INVOICE_DT, CREATED_BY, CREATED_ON_DT, LAST_UPDATE_DT, CUSTOMER_ID, PRODUCT_ID, PRICE_PER_UNIT, STORE_ID, OTY_ORDERED, TOT_PRICE_BY_PRODUCT, ETL_PROC_WID, DATASOURCE_NUM_ID)
    Values
       (21, TO_DATE('06/14/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 21, TO_DATE('06/14/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), TO_DATE('06/14/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 164, 10, 5, 3200, 5, 25, '22858060', 1);
    Insert into W_ORDERS_FS
       (INVOICE_NUMBER, INVOICE_DT, CREATED_BY, CREATED_ON_DT, LAST_UPDATE_DT, CUSTOMER_ID, PRODUCT_ID, PRICE_PER_UNIT, STORE_ID, OTY_ORDERED, TOT_PRICE_BY_PRODUCT, ETL_PROC_WID, DATASOURCE_NUM_ID)
    Values
       (24, TO_DATE('06/18/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 22, TO_DATE('06/18/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), TO_DATE('06/18/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 164, 1, 8, 3200, 10, 80, '22858060', 1);
    Insert into W_ORDERS_FS
       (INVOICE_NUMBER, INVOICE_DT, CREATED_BY, CREATED_ON_DT, LAST_UPDATE_DT, CUSTOMER_ID, PRODUCT_ID, PRICE_PER_UNIT, STORE_ID, OTY_ORDERED, TOT_PRICE_BY_PRODUCT, ETL_PROC_WID, DATASOURCE_NUM_ID)
    Values
       (24, TO_DATE('06/18/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 22, TO_DATE('06/18/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), TO_DATE('06/18/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 164, 10, 5, 3200, 5, 25, '22858060', 1);
    Insert into W_ORDERS_FS
       (INVOICE_NUMBER, INVOICE_DT, CREATED_BY, CREATED_ON_DT, LAST_UPDATE_DT, CUSTOMER_ID, PRODUCT_ID, PRICE_PER_UNIT, STORE_ID, OTY_ORDERED, TOT_PRICE_BY_PRODUCT, ETL_PROC_WID, DATASOURCE_NUM_ID)
    Values
       (23, TO_DATE('06/17/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 22, TO_DATE('06/17/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), TO_DATE('06/17/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 162, 3, 10, 1100, 10, 100, '22858060', 1);
    Insert into W_ORDERS_FS
       (INVOICE_NUMBER, INVOICE_DT, CREATED_BY, CREATED_ON_DT, LAST_UPDATE_DT, CUSTOMER_ID, PRODUCT_ID, PRICE_PER_UNIT, STORE_ID, OTY_ORDERED, TOT_PRICE_BY_PRODUCT, ETL_PROC_WID, DATASOURCE_NUM_ID)
    Values
       (23, TO_DATE('06/17/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 22, TO_DATE('06/17/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), TO_DATE('06/17/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 162, 4, 1, 1100, 10, 10, '22858060', 1);
    Insert into W_ORDERS_FS
       (INVOICE_NUMBER, INVOICE_DT, CREATED_BY, CREATED_ON_DT, LAST_UPDATE_DT, CUSTOMER_ID, PRODUCT_ID, PRICE_PER_UNIT, STORE_ID, OTY_ORDERED, TOT_PRICE_BY_PRODUCT, ETL_PROC_WID, DATASOURCE_NUM_ID)
    Values
       (22, TO_DATE('06/16/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 23, TO_DATE('06/16/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), TO_DATE('06/16/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 164, 1, 8, 3200, 10, 80, '22858060', 1);
    Insert into W_ORDERS_FS
       (INVOICE_NUMBER, INVOICE_DT, CREATED_BY, CREATED_ON_DT, LAST_UPDATE_DT, CUSTOMER_ID, PRODUCT_ID, PRICE_PER_UNIT, STORE_ID, OTY_ORDERED, TOT_PRICE_BY_PRODUCT, ETL_PROC_WID, DATASOURCE_NUM_ID)
    Values
       (22, TO_DATE('06/16/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 23, TO_DATE('06/16/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), TO_DATE('06/16/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 164, 2, 25, 3200, 10, 250, '22858060', 1);
    COMMIT;
    CREATE TABLE W_PRODUCT_D
      ROW_WID            NUMBER(10),
      ROW_WID_SKEY       NUMBER(10,5),
      PRODUCT_ID         NUMBER(2)                  NOT NULL,
      PRODUCT_NAME       VARCHAR2(50 BYTE),
      OTY_IN_STOCK       NUMBER(5),
      CREATED_BY         NUMBER(2),
      CREATED_ON_DT      DATE,
      CHANGED_BY         NUMBER(2),
      CHANGED_ON_DT      DATE,
      LAST_UPDATE_DT     DATE,
      W_INSERT_DT        DATE,
      W_UPDATE_DT        DATE,
      CURRENT_FLG        VARCHAR2(1 BYTE),
      ORIGINAL_QUANTITY  NUMBER(10),
      ETL_PROC_WID       VARCHAR2(100 BYTE),
      DATASOURCE_NUM_ID  NUMBER
    Insert into W_PRODUCT_D
       (ROW_WID, ROW_WID_SKEY, PRODUCT_ID, PRODUCT_NAME, OTY_IN_STOCK, CREATED_BY, CREATED_ON_DT, LAST_UPDATE_DT, W_INSERT_DT, CURRENT_FLG, ORIGINAL_QUANTITY, ETL_PROC_WID, DATASOURCE_NUM_ID)
    Values
       (1, 1, 7, '7up', 180, 20, TO_DATE('06/04/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), TO_DATE('06/14/2013 13:29:24', 'MM/DD/YYYY HH24:MI:SS'), TO_DATE('06/19/2013 11:09:35', 'MM/DD/YYYY HH24:MI:SS'), 'Y', 200, '22858060', 1);
    Insert into W_PRODUCT_D
       (ROW_WID, ROW_WID_SKEY, PRODUCT_ID, PRODUCT_NAME, OTY_IN_STOCK, CREATED_BY, CREATED_ON_DT, LAST_UPDATE_DT, W_INSERT_DT, CURRENT_FLG, ORIGINAL_QUANTITY, ETL_PROC_WID, DATASOURCE_NUM_ID)
    Values
       (2, 2, 8, 'Nestle munch', 990, 23, TO_DATE('06/05/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), TO_DATE('06/14/2013 13:29:24', 'MM/DD/YYYY HH24:MI:SS'), TO_DATE('06/19/2013 11:09:35', 'MM/DD/YYYY HH24:MI:SS'), 'Y', 1000, '22858060', 1);
    Insert into W_PRODUCT_D
       (ROW_WID, ROW_WID_SKEY, PRODUCT_ID, PRODUCT_NAME, OTY_IN_STOCK, CREATED_BY, CREATED_ON_DT, CHANGED_BY, CHANGED_ON_DT, LAST_UPDATE_DT, W_INSERT_DT, CURRENT_FLG, ORIGINAL_QUANTITY, ETL_PROC_WID, DATASOURCE_NUM_ID)
    Values
       (3, 3, 1, 'Coca cola mini', 0, 19, TO_DATE('05/28/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 21, TO_DATE('06/18/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), TO_DATE('06/18/2013 13:29:24', 'MM/DD/YYYY HH24:MI:SS'), TO_DATE('06/19/2013 11:09:35', 'MM/DD/YYYY HH24:MI:SS'), 'Y', 100, '22858060', 1);
    Insert into W_PRODUCT_D
       (ROW_WID, ROW_WID_SKEY, PRODUCT_ID, PRODUCT_NAME, OTY_IN_STOCK, CREATED_BY, CREATED_ON_DT, CHANGED_BY, CHANGED_ON_DT, LAST_UPDATE_DT, W_INSERT_DT, CURRENT_FLG, ORIGINAL_QUANTITY, ETL_PROC_WID, DATASOURCE_NUM_ID)
    Values
       (4, 4, 2, 'coca cola peg bottle', 465, 20, TO_DATE('05/28/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 21, TO_DATE('06/16/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), TO_DATE('06/16/2013 13:29:24', 'MM/DD/YYYY HH24:MI:SS'), TO_DATE('06/19/2013 11:09:35', 'MM/DD/YYYY HH24:MI:SS'), 'Y', 500, '22858060', 1);
    Insert into W_PRODUCT_D
       (ROW_WID, ROW_WID_SKEY, PRODUCT_ID, PRODUCT_NAME, OTY_IN_STOCK, CREATED_BY, CREATED_ON_DT, CHANGED_BY, CHANGED_ON_DT, LAST_UPDATE_DT, W_INSERT_DT, CURRENT_FLG, ORIGINAL_QUANTITY, ETL_PROC_WID, DATASOURCE_NUM_ID)
    Values
       (5, 5, 3, 'ruffle lays', 965, 19, TO_DATE('05/28/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 21, TO_DATE('06/17/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), TO_DATE('06/17/2013 13:29:24', 'MM/DD/YYYY HH24:MI:SS'), TO_DATE('06/19/2013 11:09:35', 'MM/DD/YYYY HH24:MI:SS'), 'Y', 1000, '22858060', 1);
    Insert into W_PRODUCT_D
       (ROW_WID, ROW_WID_SKEY, PRODUCT_ID, PRODUCT_NAME, OTY_IN_STOCK, CREATED_BY, CREATED_ON_DT, CHANGED_BY, CHANGED_ON_DT, LAST_UPDATE_DT, W_INSERT_DT, CURRENT_FLG, ORIGINAL_QUANTITY, ETL_PROC_WID, DATASOURCE_NUM_ID)
    Values
       (6, 6, 4, 'center fresh', 9925, 23, TO_DATE('05/28/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 22, TO_DATE('06/17/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), TO_DATE('06/17/2013 13:29:24', 'MM/DD/YYYY HH24:MI:SS'), TO_DATE('06/19/2013 11:09:35', 'MM/DD/YYYY HH24:MI:SS'), 'Y', 10000, '22858060', 1);
    Insert into W_PRODUCT_D
       (ROW_WID, ROW_WID_SKEY, PRODUCT_ID, PRODUCT_NAME, OTY_IN_STOCK, CREATED_BY, CREATED_ON_DT, LAST_UPDATE_DT, W_INSERT_DT, CURRENT_FLG, ORIGINAL_QUANTITY, ETL_PROC_WID, DATASOURCE_NUM_ID)
    Values
       (7, 7, 5, 'Mirinda', 10, 20, TO_DATE('05/28/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), TO_DATE('06/14/2013 13:29:24', 'MM/DD/YYYY HH24:MI:SS'), TO_DATE('06/19/2013 11:09:35', 'MM/DD/YYYY HH24:MI:SS'), 'Y', 100, '22858060', 1);
    Insert into W_PRODUCT_D
       (ROW_WID, ROW_WID_SKEY, PRODUCT_ID, PRODUCT_NAME, OTY_IN_STOCK, CREATED_BY, CREATED_ON_DT, LAST_UPDATE_DT, W_INSERT_DT, CURRENT_FLG, ORIGINAL_QUANTITY, ETL_PROC_WID, DATASOURCE_NUM_ID)
    Values
       (8, 8, 6, 'pepsi', 25, 20, TO_DATE('05/28/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), TO_DATE('06/14/2013 13:29:24', 'MM/DD/YYYY HH24:MI:SS'), TO_DATE('06/19/2013 11:09:35', 'MM/DD/YYYY HH24:MI:SS'), 'Y', 50, '22858060', 1);
    Insert into W_PRODUCT_D
       (ROW_WID, ROW_WID_SKEY, PRODUCT_ID, PRODUCT_NAME, OTY_IN_STOCK, CREATED_BY, CREATED_ON_DT, LAST_UPDATE_DT, W_INSERT_DT, CURRENT_FLG, ORIGINAL_QUANTITY, ETL_PROC_WID, DATASOURCE_NUM_ID)
    Values
       (9, 9, 9, 'Mentos mint', 990, 20, TO_DATE('06/13/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), TO_DATE('06/14/2013 13:29:24', 'MM/DD/YYYY HH24:MI:SS'), TO_DATE('06/19/2013 11:09:35', 'MM/DD/YYYY HH24:MI:SS'), 'Y', 1000, '22858060', 1);
    Insert into W_PRODUCT_D
       (ROW_WID, ROW_WID_SKEY, PRODUCT_ID, PRODUCT_NAME, OTY_IN_STOCK, CREATED_BY, CREATED_ON_DT, CHANGED_BY, CHANGED_ON_DT, LAST_UPDATE_DT, W_INSERT_DT, CURRENT_FLG, ORIGINAL_QUANTITY, ETL_PROC_WID, DATASOURCE_NUM_ID)
    Values
       (10, 10, 10, 'Marie gold biscuit', 0, 20, TO_DATE('06/13/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 23, TO_DATE('06/18/2013 13:29:24', 'MM/DD/YYYY HH24:MI:SS'), TO_DATE('06/18/2013 13:29:24', 'MM/DD/YYYY HH24:MI:SS'), TO_DATE('06/19/2013 11:09:35', 'MM/DD/YYYY HH24:MI:SS'), 'Y', 10, '22858060', 1);
    COMMIT;
    CREATE TABLE W_ORDERS_F
      ROW_WID               NUMBER,
      INVOICE_NUMBER        NUMBER(3),
      INVOICE_DT            DATE,
      CREATED_BY            NUMBER(6),
      CREATED_ON_DT         DATE,
      CHANGED_BY            NUMBER(6),
      CHANGED_ON_DT         DATE,
      LAST_UPDATE_DT        DATE,
      PRODUCT_WID_SKEY      NUMBER(15),
      PRICE_PER_UNIT        NUMBER(5),
      OTY_ORDERED           NUMBER(5),
      TOT_PRICE_BY_PRODUCT  NUMBER,
      W_INSERT_DT           DATE,
      TIME_WID              VARCHAR2(29 BYTE),
      DAY_NUM_OF_WEEK       NUMBER,
      MONTH_END_DT          DATE,
      QUARTER_NUM_OF_YEAR   NUMBER,
      YEAR_END_DT           DATE,
      ETL_PROC_WID          VARCHAR2(100 BYTE),
      DATASOURCE_NUM_ID     INTEGER,
      INTEGRATION_ID        VARCHAR2(100 BYTE)
    Insert into W_ORDERS_F
       (ROW_WID, INVOICE_NUMBER, INVOICE_DT, CREATED_BY, CREATED_ON_DT, LAST_UPDATE_DT, PRODUCT_WID_SKEY, PRICE_PER_UNIT, OTY_ORDERED, TOT_PRICE_BY_PRODUCT, W_INSERT_DT, TIME_WID, DAY_NUM_OF_WEEK, MONTH_END_DT, QUARTER_NUM_OF_YEAR, YEAR_END_DT, ETL_PROC_WID, DATASOURCE_NUM_ID, INTEGRATION_ID)
    Values
       (1, 10, TO_DATE('05/28/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 19, TO_DATE('05/28/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), TO_DATE('05/28/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), -8, 8, 10, 80, TO_DATE('06/19/2013 12:17:41', 'MM/DD/YYYY HH24:MI:SS'), '05282013', 3, TO_DATE('05/31/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 2, TO_DATE('12/31/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), '22858060', 1, '10~');
    Insert into W_ORDERS_F
       (ROW_WID, INVOICE_NUMBER, INVOICE_DT, CREATED_BY, CREATED_ON_DT, LAST_UPDATE_DT, PRODUCT_WID_SKEY, PRICE_PER_UNIT, OTY_ORDERED, TOT_PRICE_BY_PRODUCT, W_INSERT_DT, TIME_WID, DAY_NUM_OF_WEEK, MONTH_END_DT, QUARTER_NUM_OF_YEAR, YEAR_END_DT, ETL_PROC_WID, DATASOURCE_NUM_ID, INTEGRATION_ID)
    Values
       (2, 10, TO_DATE('05/28/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 19, TO_DATE('05/28/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), TO_DATE('05/28/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 4, 25, 10, 250, TO_DATE('06/19/2013 12:17:41', 'MM/DD/YYYY HH24:MI:SS'), '05282013', 3, TO_DATE('05/31/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 2, TO_DATE('12/31/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), '22858060', 1, '10~');
    Insert into W_ORDERS_F
       (ROW_WID, INVOICE_NUMBER, INVOICE_DT, CREATED_BY, CREATED_ON_DT, LAST_UPDATE_DT, PRODUCT_WID_SKEY, PRICE_PER_UNIT, OTY_ORDERED, TOT_PRICE_BY_PRODUCT, W_INSERT_DT, TIME_WID, DAY_NUM_OF_WEEK, MONTH_END_DT, QUARTER_NUM_OF_YEAR, YEAR_END_DT, ETL_PROC_WID, DATASOURCE_NUM_ID, INTEGRATION_ID)
    Values
       (3, 11, TO_DATE('05/28/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 20, TO_DATE('05/28/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), TO_DATE('05/28/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 8, 9, 10, 90, TO_DATE('06/19/2013 12:17:41', 'MM/DD/YYYY HH24:MI:SS'), '05282013', 3, TO_DATE('05/31/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 2, TO_DATE('12/31/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), '22858060', 1, '11~');
    Insert into W_ORDERS_F
       (ROW_WID, INVOICE_NUMBER, INVOICE_DT, CREATED_BY, CREATED_ON_DT, LAST_UPDATE_DT, PRODUCT_WID_SKEY, PRICE_PER_UNIT, OTY_ORDERED, TOT_PRICE_BY_PRODUCT, W_INSERT_DT, TIME_WID, DAY_NUM_OF_WEEK, MONTH_END_DT, QUARTER_NUM_OF_YEAR, YEAR_END_DT, ETL_PROC_WID, DATASOURCE_NUM_ID, INTEGRATION_ID)
    Values
       (4, 12, TO_DATE('05/28/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 21, TO_DATE('05/28/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), TO_DATE('05/28/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 7, 10, 10, 100, TO_DATE('06/19/2013 12:17:41', 'MM/DD/YYYY HH24:MI:SS'), '05282013', 3, TO_DATE('05/31/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 2, TO_DATE('12/31/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), '22858060', 1, '12~');
    Insert into W_ORDERS_F
       (ROW_WID, INVOICE_NUMBER, INVOICE_DT, CREATED_BY, CREATED_ON_DT, LAST_UPDATE_DT, PRODUCT_WID_SKEY, PRICE_PER_UNIT, OTY_ORDERED, TOT_PRICE_BY_PRODUCT, W_INSERT_DT, TIME_WID, DAY_NUM_OF_WEEK, MONTH_END_DT, QUARTER_NUM_OF_YEAR, YEAR_END_DT, ETL_PROC_WID, DATASOURCE_NUM_ID, INTEGRATION_ID)
    Values
       (5, 13, TO_DATE('05/28/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 22, TO_DATE('05/28/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), TO_DATE('05/28/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 7, 10, 10, 100, TO_DATE('06/19/2013 12:17:41', 'MM/DD/YYYY HH24:MI:SS'), '05282013', 3, TO_DATE('05/31/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 2, TO_DATE('12/31/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), '22858060', 1, '13~');
    Insert into W_ORDERS_F
       (ROW_WID, INVOICE_NUMBER, INVOICE_DT, CREATED_BY, CREATED_ON_DT, LAST_UPDATE_DT, PRODUCT_WID_SKEY, PRICE_PER_UNIT, OTY_ORDERED, TOT_PRICE_BY_PRODUCT, W_INSERT_DT, TIME_WID, DAY_NUM_OF_WEEK, MONTH_END_DT, QUARTER_NUM_OF_YEAR, YEAR_END_DT, ETL_PROC_WID, DATASOURCE_NUM_ID, INTEGRATION_ID)
    Values
       (6, 14, TO_DATE('05/28/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 23, TO_DATE('05/28/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), TO_DATE('05/28/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), -8, 8, 20, 160, TO_DATE('06/19/2013 12:17:41', 'MM/DD/YYYY HH24:MI:SS'), '05282013', 3, TO_DATE('05/31/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 2, TO_DATE('12/31/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), '22858060', 1, '14~');
    Insert into W_ORDERS_F
       (ROW_WID, INVOICE_NUMBER, INVOICE_DT, CREATED_BY, CREATED_ON_DT, LAST_UPDATE_DT, PRODUCT_WID_SKEY, PRICE_PER_UNIT, OTY_ORDERED, TOT_PRICE_BY_PRODUCT, W_INSERT_DT, TIME_WID, DAY_NUM_OF_WEEK, MONTH_END_DT, QUARTER_NUM_OF_YEAR, YEAR_END_DT, ETL_PROC_WID, DATASOURCE_NUM_ID, INTEGRATION_ID)
    Values
       (7, 15, TO_DATE('05/28/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 19, TO_DATE('05/28/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), TO_DATE('05/28/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 4, 25, 5, 125, TO_DATE('06/19/2013 12:17:41', 'MM/DD/YYYY HH24:MI:SS'), '05282013', 3, TO_DATE('05/31/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 2, TO_DATE('12/31/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), '22858060', 1, '15~');
    Insert into W_ORDERS_F
       (ROW_WID, INVOICE_NUMBER, INVOICE_DT, CREATED_BY, CREATED_ON_DT, LAST_UPDATE_DT, PRODUCT_WID_SKEY, PRICE_PER_UNIT, OTY_ORDERED, TOT_PRICE_BY_PRODUCT, W_INSERT_DT, TIME_WID, DAY_NUM_OF_WEEK, MONTH_END_DT, QUARTER_NUM_OF_YEAR, YEAR_END_DT, ETL_PROC_WID, DATASOURCE_NUM_ID, INTEGRATION_ID)
    Values
       (8, 15, TO_DATE('05/28/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 19, TO_DATE('05/28/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), TO_DATE('05/28/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 8, 9, 5, 45, TO_DATE('06/19/2013 12:17:41', 'MM/DD/YYYY HH24:MI:SS'), '05282013', 3, TO_DATE('05/31/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 2, TO_DATE('12/31/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), '22858060', 1, '15~');
    Insert into W_ORDERS_F
       (ROW_WID, INVOICE_NUMBER, INVOICE_DT, CREATED_BY, CREATED_ON_DT, LAST_UPDATE_DT, PRODUCT_WID_SKEY, PRICE_PER_UNIT, OTY_ORDERED, TOT_PRICE_BY_PRODUCT, W_INSERT_DT, TIME_WID, DAY_NUM_OF_WEEK, MONTH_END_DT, QUARTER_NUM_OF_YEAR, YEAR_END_DT, ETL_PROC_WID, DATASOURCE_NUM_ID, INTEGRATION_ID)
    Values
       (9, 15, TO_DATE('05/28/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 19, TO_DATE('05/28/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), TO_DATE('05/28/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 7, 10, 5, 50, TO_DATE('06/19/2013 12:17:41', 'MM/DD/YYYY HH24:MI:SS'), '05282013', 3, TO_DATE('05/31/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 2, TO_DATE('12/31/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), '22858060', 1, '15~');
    Insert into W_ORDERS_F
       (ROW_WID, INVOICE_NUMBER, INVOICE_DT, CREATED_BY, CREATED_ON_DT, LAST_UPDATE_DT, PRODUCT_WID_SKEY, PRICE_PER_UNIT, OTY_ORDERED, TOT_PRICE_BY_PRODUCT, W_INSERT_DT, TIME_WID, DAY_NUM_OF_WEEK, MONTH_END_DT, QUARTER_NUM_OF_YEAR, YEAR_END_DT, ETL_PROC_WID, DATASOURCE_NUM_ID, INTEGRATION_ID)
    Values
       (10, 15, TO_DATE('05/28/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 19, TO_DATE('05/28/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), TO_DATE('05/28/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), -8, 8, 5, 40, TO_DATE('06/19/2013 12:17:41', 'MM/DD/YYYY HH24:MI:SS'), '05282013', 3, TO_DATE('05/31/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 2, TO_DATE('12/31/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), '22858060', 1, '15~');
    Insert into W_ORDERS_F
       (ROW_WID, INVOICE_NUMBER, INVOICE_DT, CREATED_BY, CREATED_ON_DT, LAST_UPDATE_DT, PRODUCT_WID_SKEY, PRICE_PER_UNIT, OTY_ORDERED, TOT_PRICE_BY_PRODUCT, W_INSERT_DT, TIME_WID, DAY_NUM_OF_WEEK, MONTH_END_DT, QUARTER_NUM_OF_YEAR, YEAR_END_DT, ETL_PROC_WID, DATASOURCE_NUM_ID, INTEGRATION_ID)
    Values
       (11, 16, TO_DATE('05/28/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 22, TO_DATE('05/28/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), TO_DATE('06/14/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 5, 10, 15, 150, TO_DATE('06/19/2013 12:17:41', 'MM/DD/YYYY HH24:MI:SS'), '05282013', 3, TO_DATE('05/31/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 2, TO_DATE('12/31/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), '22858060', 1, '16~');
    Insert into W_ORDERS_F
       (ROW_WID, INVOICE_NUMBER, INVOICE_DT, CREATED_BY, CREATED_ON_DT, LAST_UPDATE_DT, PRODUCT_WID_SKEY, PRICE_PER_UNIT, OTY_ORDERED, TOT_PRICE_BY_PRODUCT, W_INSERT_DT, TIME_WID, DAY_NUM_OF_WEEK, MONTH_END_DT, QUARTER_NUM_OF_YEAR, YEAR_END_DT, ETL_PROC_WID, DATASOURCE_NUM_ID, INTEGRATION_ID)
    Values
       (12, 16, TO_DATE('05/28/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 22, TO_DATE('05/28/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), TO_DATE('06/14/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), -8, 8, 25, 200, TO_DATE('06/19/2013 12:17:41', 'MM/DD/YYYY HH24:MI:SS'), '05282013', 3, TO_DATE('05/31/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 2, TO_DATE('12/31/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), '22858060', 1, '16~');
    Insert into W_ORDERS_F
       (ROW_WID, INVOICE_NUMBER, INVOICE_DT, CREATED_BY, CREATED_ON_DT, LAST_UPDATE_DT, PRODUCT_WID_SKEY, PRICE_PER_UNIT, OTY_ORDERED, TOT_PRICE_BY_PRODUCT, W_INSERT_DT, TIME_WID, DAY_NUM_OF_WEEK, MONTH_END_DT, QUARTER_NUM_OF_YEAR, YEAR_END_DT, ETL_PROC_WID, DATASOURCE_NUM_ID, INTEGRATION_ID)
    Values
       (13, 16, TO_DATE('05/28/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 22, TO_DATE('05/28/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), TO_DATE('06/14/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 6, 1, 55, 55, TO_DATE('06/19/2013 12:17:41', 'MM/DD/YYYY HH24:MI:SS'), '05282013', 3, TO_DATE('05/31/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 2, TO_DATE('12/31/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), '22858060', 1, '16~');
    Insert into W_ORDERS_F
       (ROW_WID, INVOICE_NUMBER, INVOICE_DT, CREATED_BY, CREATED_ON_DT, LAST_UPDATE_DT, PRODUCT_WID_SKEY, PRICE_PER_UNIT, OTY_ORDERED, TOT_PRICE_BY_PRODUCT, W_INSERT_DT, TIME_WID, DAY_NUM_OF_WEEK, MONTH_END_DT, QUARTER_NUM_OF_YEAR, YEAR_END_DT, ETL_PROC_WID, DATASOURCE_NUM_ID, INTEGRATION_ID)
    Values
       (14, 16, TO_DATE('05/28/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 22, TO_DATE('05/28/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), TO_DATE('06/14/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 7, 10, 55, 550, TO_DATE('06/19/2013 12:17:41', 'MM/DD/YYYY HH24:MI:SS'), '05282013', 3, TO_DATE('05/31/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 2, TO_DATE('12/31/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), '22858060', 1, '16~');
    Insert into W_ORDERS_F
       (ROW_WID, INVOICE_NUMBER, INVOICE_DT, CREATED_BY, CREATED_ON_DT, LAST_UPDATE_DT, PRODUCT_WID_SKEY, PRICE_PER_UNIT, OTY_ORDERED, TOT_PRICE_BY_PRODUCT, W_INSERT_DT, TIME_WID, DAY_NUM_OF_WEEK, MONTH_END_DT, QUARTER_NUM_OF_YEAR, YEAR_END_DT, ETL_PROC_WID, DATASOURCE_NUM_ID, INTEGRATION_ID)
    Values
       (15, 17, TO_DATE('06/14/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 22, TO_DATE('06/14/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), TO_DATE('06/14/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), -8, 8, 10, 80, TO_DATE('06/19/2013 12:17:41', 'MM/DD/YYYY HH24:MI:SS'), '06142013', 6, TO_DATE('06/30/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 2, TO_DATE('12/31/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), '22858060', 1, '17~');
    Insert into W_ORDERS_F
       (ROW_WID, INVOICE_NUMBER, INVOICE_DT, CREATED_BY, CREATED_ON_DT, LAST_UPDATE_DT, PRODUCT_WID_SKEY, PRICE_PER_UNIT, OTY_ORDERED, TOT_PRICE_BY_PRODUCT, W_INSERT_DT, TIME_WID, DAY_NUM_OF_WEEK, MONTH_END_DT, QUARTER_NUM_OF_YEAR, YEAR_END_DT, ETL_PROC_WID, DATASOURCE_NUM_ID, INTEGRATION_ID)
    Values
       (16, 17, TO_DATE('06/14/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 22, TO_DATE('06/14/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), TO_DATE('06/14/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 1, 10, 10, 100, TO_DATE('06/19/2013 12:17:41', 'MM/DD/YYYY HH24:MI:SS'), '06142013', 6, TO_DATE('06/30/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 2, TO_DATE('12/31/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), '22858060', 1, '17~');
    Insert into W_ORDERS_F
       (ROW_WID, INVOICE_NUMBER, INVOICE_DT, CREATED_BY, CREATED_ON_DT, LAST_UPDATE_DT, PRODUCT_WID_SKEY, PRICE_PER_UNIT, OTY_ORDERED, TOT_PRICE_BY_PRODUCT, W_INSERT_DT, TIME_WID, DAY_NUM_OF_WEEK, MONTH_END_DT, QUARTER_NUM_OF_YEAR, YEAR_END_DT, ETL_PROC_WID, DATASOURCE_NUM_ID, INTEGRATION_ID)
    Values
       (17, 18, TO_DATE('06/14/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 19, TO_DATE('06/14/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), TO_DATE('06/14/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), -8, 8, 10, 80, TO_DATE('06/19/2013 12:17:41', 'MM/DD/YYYY HH24:MI:SS'), '06142013', 6, TO_DATE('06/30/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 2, TO_DATE('12/31/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), '22858060', 1, '18~');
    Insert into W_ORDERS_F
       (ROW_WID, INVOICE_NUMBER, INVOICE_DT, CREATED_BY, CREATED_ON_DT, LAST_UPDATE_DT, PRODUCT_WID_SKEY, PRICE_PER_UNIT, OTY_ORDERED, TOT_PRICE_BY_PRODUCT, W_INSERT_DT, TIME_WID, DAY_NUM_OF_WEEK, MONTH_END_DT, QUARTER_NUM_OF_YEAR, YEAR_END_DT, ETL_PROC_WID, DATASOURCE_NUM_ID, INTEGRATION_ID)
    Values
       (18, 18, TO_DATE('06/14/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 19, TO_DATE('06/14/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), TO_DATE('06/14/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 1, 10, 10, 100, TO_DATE('06/19/2013 12:17:41', 'MM/DD/YYYY HH24:MI:SS'), '06142013', 6, TO_DATE('06/30/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 2, TO_DATE('12/31/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), '22858060', 1, '18~');
    Insert into W_ORDERS_F
       (ROW_WID, INVOICE_NUMBER, INVOICE_DT, CREATED_BY, CREATED_ON_DT, LAST_UPDATE_DT, PRODUCT_WID_SKEY, PRICE_PER_UNIT, OTY_ORDERED, TOT_PRICE_BY_PRODUCT, W_INSERT_DT, TIME_WID, DAY_NUM_OF_WEEK, MONTH_END_DT, QUARTER_NUM_OF_YEAR, YEAR_END_DT, ETL_PROC_WID, DATASOURCE_NUM_ID, INTEGRATION_ID)
    Values
       (19, 19, TO_DATE('06/14/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 19, TO_DATE('06/14/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), TO_DATE('06/14/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 5, 10, 10, 100, TO_DATE('06/19/2013 12:17:41', 'MM/DD/YYYY HH24:MI:SS'), '06142013', 6, TO_DATE('06/30/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 2, TO_DATE('12/31/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), '22858060', 1, '19~');
    Insert into W_ORDERS_F
       (ROW_WID, INVOICE_NUMBER, INVOICE_DT, CREATED_BY, CREATED_ON_DT, LAST_UPDATE_DT, PRODUCT_WID_SKEY, PRICE_PER_UNIT, OTY_ORDERED, TOT_PRICE_BY_PRODUCT, W_INSERT_DT, TIME_WID, DAY_NUM_OF_WEEK, MONTH_END_DT, QUARTER_NUM_OF_YEAR, YEAR_END_DT, ETL_PROC_WID, DATASOURCE_NUM_ID, INTEGRATION_ID)
    Values
       (20, 19, TO_DATE('06/14/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 19, TO_DATE('06/14/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), TO_DATE('06/14/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 6, 1, 10, 10, TO_DATE('06/19/2013 12:17:41', 'MM/DD/YYYY HH24:MI:SS'), '06142013', 6, TO_DATE('06/30/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 2, TO_DATE('12/31/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), '22858060', 1, '19~');
    Insert into W_ORDERS_F
       (ROW_WID, INVOICE_NUMBER, INVOICE_DT, CREATED_BY, CREATED_ON_DT, LAST_UPDATE_DT, PRODUCT_WID_SKEY, PRICE_PER_UNIT, OTY_ORDERED, TOT_PRICE_BY_PRODUCT, W_INSERT_DT, TIME_WID, DAY_NUM_OF_WEEK, MONTH_END_DT, QUARTER_NUM_OF_YEAR, YEAR_END_DT, ETL_PROC_WID, DATASOURCE_NUM_ID, INTEGRATION_ID)
    Values
       (21, 20, TO_DATE('06/14/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 20, TO_DATE('06/14/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), TO_DATE('06/14/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 7, 10, 10, 100, TO_DATE('06/19/2013 12:17:41', 'MM/DD/YYYY HH24:MI:SS'), '06142013', 6, TO_DATE('06/30/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 2, TO_DATE('12/31/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), '22858060', 1, '20~');
    Insert into W_ORDERS_F
       (ROW_WID, INVOICE_NUMBER, INVOICE_DT, CREATED_BY, CREATED_ON_DT, LAST_UPDATE_DT, PRODUCT_WID_SKEY, PRICE_PER_UNIT, OTY_ORDERED, TOT_PRICE_BY_PRODUCT, W_INSERT_DT, TIME_WID, DAY_NUM_OF_WEEK, MONTH_END_DT, QUARTER_NUM_OF_YEAR, YEAR_END_DT, ETL_PROC_WID, DATASOURCE_NUM_ID, INTEGRATION_ID)
    Values
       (22, 20, TO_DATE('06/14/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 20, TO_DATE('06/14/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), TO_DATE('06/14/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 8, 9, 10, 90, TO_DATE('06/19/2013 12:17:41', 'MM/DD/YYYY HH24:MI:SS'), '06142013', 6, TO_DATE('06/30/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 2, TO_DATE('12/31/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), '22858060', 1, '20~');
    Insert into W_ORDERS_F
       (ROW_WID, INVOICE_NUMBER, INVOICE_DT, CREATED_BY, CREATED_ON_DT, LAST_UPDATE_DT, PRODUCT_WID_SKEY, PRICE_PER_UNIT, OTY_ORDERED, TOT_PRICE_BY_PRODUCT, W_INSERT_DT, TIME_WID, DAY_NUM_OF_WEEK, MONTH_END_DT, QUARTER_NUM_OF_YEAR, YEAR_END_DT, ETL_PROC_WID, DATASOURCE_NUM_ID, INTEGRATION_ID)
    Values
       (23, 21, TO_DATE('06/14/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 21, TO_DATE('06/14/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), TO_DATE('06/14/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 2, 5, 10, 50, TO_DATE('06/19/2013 12:17:41', 'MM/DD/YYYY HH24:MI:SS'), '06142013', 6, TO_DATE('06/30/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 2, TO_DATE('12/31/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), '22858060', 1, '21~');
    Insert into W_ORDERS_F
       (ROW_WID, INVOICE_NUMBER, INVOICE_DT, CREATED_BY, CREATED_ON_DT, LAST_UPDATE_DT, PRODUCT_WID_SKEY, PRICE_PER_UNIT, OTY_ORDERED, TOT_PRICE_BY_PRODUCT, W_INSERT_DT, TIME_WID, DAY_NUM_OF_WEEK, MONTH_END_DT, QUARTER_NUM_OF_YEAR, YEAR_END_DT, ETL_PROC_WID, DATASOURCE_NUM_ID, INTEGRATION_ID)
    Values
       (24, 21, TO_DATE('06/14/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 21, TO_DATE('06/14/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), TO_DATE('06/14/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 4, 25, 10, 250, TO_DATE('06/19/2013 12:17:41', 'MM/DD/YYYY HH24:MI:SS'), '06142013', 6, TO_DATE('06/30/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 2, TO_DATE('12/31/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), '22858060', 1, '21~');
    Insert into W_ORDERS_F
       (ROW_WID, INVOICE_NUMBER, INVOICE_DT, CREATED_BY, CREATED_ON_DT, LAST_UPDATE_DT, PRODUCT_WID_SKEY, PRICE_PER_UNIT, OTY_ORDERED, TOT_PRICE_BY_PRODUCT, W_INSERT_DT, TIME_WID, DAY_NUM_OF_WEEK, MONTH_END_DT, QUARTER_NUM_OF_YEAR, YEAR_END_DT, ETL_PROC_WID, DATASOURCE_NUM_ID, INTEGRATION_ID)
    Values
       (25, 21, TO_DATE('06/14/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 21, TO_DATE('06/14/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), TO_DATE('06/14/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 9, 1, 10, 10, TO_DATE('06/19/2013 12:17:41', 'MM/DD/YYYY HH24:MI:SS'), '06142013', 6, TO_DATE('06/30/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 2, TO_DATE('12/31/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), '22858060', 1, '21~');
    Insert into W_ORDERS_F
       (ROW_WID, INVOICE_NUMBER, INVOICE_DT, CREATED_BY, CREATED_ON_DT, LAST_UPDATE_DT, PRODUCT_WID_SKEY, PRICE_PER_UNIT, OTY_ORDERED, TOT_PRICE_BY_PRODUCT, W_INSERT_DT, TIME_WID, DAY_NUM_OF_WEEK, MONTH_END_DT, QUARTER_NUM_OF_YEAR, YEAR_END_DT, ETL_PROC_WID, DATASOURCE_NUM_ID, INTEGRATION_ID)
    Values
       (26, 21, TO_DATE('06/14/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 21, TO_DATE('06/14/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), TO_DATE('06/14/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 10, 5, 5, 25, TO_DATE('06/19/2013 12:17:41', 'MM/DD/YYYY HH24:MI:SS'), '06142013', 6, TO_DATE('06/30/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 2, TO_DATE('12/31/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), '22858060', 1, '21~');
    Insert into W_ORDERS_F
       (ROW_WID, INVOICE_NUMBER, INVOICE_DT, CREATED_BY, CREATED_ON_DT, LAST_UPDATE_DT, PRODUCT_WID_SKEY, PRICE_PER_UNIT, OTY_ORDERED, TOT_PRICE_BY_PRODUCT, W_INSERT_DT, TIME_WID, DAY_NUM_OF_WEEK, MONTH_END_DT, QUARTER_NUM_OF_YEAR, YEAR_END_DT, ETL_PROC_WID, DATASOURCE_NUM_ID, INTEGRATION_ID)
    Values
       (27, 24, TO_DATE('06/18/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 22, TO_DATE('06/18/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), TO_DATE('06/18/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), -8, 8, 10, 80, TO_DATE('06/19/2013 12:17:41', 'MM/DD/YYYY HH24:MI:SS'), '06182013', 3, TO_DATE('06/30/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 2, TO_DATE('12/31/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), '22858060', 1, '24~1');
    Insert into W_ORDERS_F
       (ROW_WID, INVOICE_NUMBER, INVOICE_DT, CREATED_BY, CREATED_ON_DT, LAST_UPDATE_DT, PRODUCT_WID_SKEY, PRICE_PER_UNIT, OTY_ORDERED, TOT_PRICE_BY_PRODUCT, W_INSERT_DT, TIME_WID, DAY_NUM_OF_WEEK, MONTH_END_DT, QUARTER_NUM_OF_YEAR, YEAR_END_DT, ETL_PROC_WID, DATASOURCE_NUM_ID, INTEGRATION_ID)
    Values
       (28, 24, TO_DATE('06/18/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 22, TO_DATE('06/18/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), TO_DATE('06/18/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 10, 5, 5, 25, TO_DATE('06/19/2013 12:17:41', 'MM/DD/YYYY HH24:MI:SS'), '06182013', 3, TO_DATE('06/30/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 2, TO_DATE('12/31/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), '22858060', 1, '24~1');
    Insert into W_ORDERS_F
       (ROW_WID, INVOICE_NUMBER, INVOICE_DT, CREATED_BY, CREATED_ON_DT, LAST_UPDATE_DT, PRODUCT_WID_SKEY, PRICE_PER_UNIT, OTY_ORDERED, TOT_PRICE_BY_PRODUCT, W_INSERT_DT, TIME_WID, DAY_NUM_OF_WEEK, MONTH_END_DT, QUARTER_NUM_OF_YEAR, YEAR_END_DT, ETL_PROC_WID, DATASOURCE_NUM_ID, INTEGRATION_ID)
    Values
       (29, 23, TO_DATE('06/17/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 22, TO_DATE('06/17/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), TO_DATE('06/17/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 5, 10, 10, 100, TO_DATE('06/19/2013 12:17:41', 'MM/DD/YYYY HH24:MI:SS'), '06172013', 2, TO_DATE('06/30/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 2, TO_DATE('12/31/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), '22858060', 1, '23~');
    Insert into W_ORDERS_F
       (ROW_WID, INVOICE_NUMBER, INVOICE_DT, CREATED_BY, CREATED_ON_DT, LAST_UPDATE_DT, PRODUCT_WID_SKEY, PRICE_PER_UNIT, OTY_ORDERED, TOT_PRICE_BY_PRODUCT, W_INSERT_DT, TIME_WID, DAY_NUM_OF_WEEK, MONTH_END_DT, QUARTER_NUM_OF_YEAR, YEAR_END_DT, ETL_PROC_WID, DATASOURCE_NUM_ID, INTEGRATION_ID)
    Values
       (30, 23, TO_DATE('06/17/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 22, TO_DATE('06/17/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), TO_DATE('06/17/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 6, 1, 10, 10, TO_DATE('06/19/2013 12:17:41', 'MM/DD/YYYY HH24:MI:SS'), '06172013', 2, TO_DATE('06/30/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 2, TO_DATE('12/31/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), '22858060', 1, '23~');
    Insert into W_ORDERS_F
       (ROW_WID, INVOICE_NUMBER, INVOICE_DT, CREATED_BY, CREATED_ON_DT, LAST_UPDATE_DT, PRODUCT_WID_SKEY, PRICE_PER_UNIT, OTY_ORDERED, TOT_PRICE_BY_PRODUCT, W_INSERT_DT, TIME_WID, DAY_NUM_OF_WEEK, MONTH_END_DT, QUARTER_NUM_OF_YEAR, YEAR_END_DT, ETL_PROC_WID, DATASOURCE_NUM_ID, INTEGRATION_ID)
    Values
       (31, 22, TO_DATE('06/16/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 23, TO_DATE('06/16/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), TO_DATE('06/16/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), -8, 8, 10, 80, TO_DATE('06/19/2013 12:17:41', 'MM/DD/YYYY HH24:MI:SS'), '06162013', 1, TO_DATE('06/30/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 2, TO_DATE('12/31/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), '22858060', 1, '22~');
    Insert into W_ORDERS_F
       (ROW_WID, INVOICE_NUMBER, INVOICE_DT, CREATED_BY, CREATED_ON_DT, LAST_UPDATE_DT, PRODUCT_WID_SKEY, PRICE_PER_UNIT, OTY_ORDERED, TOT_PRICE_BY_PRODUCT, W_INSERT_DT, TIME_WID, DAY_NUM_OF_WEEK, MONTH_END_DT, QUARTER_NUM_OF_YEAR, YEAR_END_DT, ETL_PROC_WID, DATASOURCE_NUM_ID, INTEGRATION_ID)
    Values
       (32, 22, TO_DATE('06/16/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 23, TO_DATE('06/16/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), TO_DATE('06/16/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 4, 25, 10, 250, TO_DATE('06/19/2013 12:17:41', 'MM/DD/YYYY HH24:MI:SS'), '06162013', 1, TO_DATE('06/30/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 2, TO_DATE('12/31/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), '22858060', 1, '22~');
    COMMIT;

    This works:
    select o_fs.invoice_number
           , o_fs.product_id o_fs_product_id
           , p_d.product_id p_d_product_id
           , p_d.row_wid_skey p_d_row_wid_skey
           , o_f.product_wid_skey
    from w_orders_fs o_fs
         , w_product_d  p_d
         , w_orders_f o_f
    where o_fs.invoice_number = 10
          and o_fs.product_id = p_d.product_id(+)
          and p_d.current_flg(+) = 'Y'
          and p_d.row_wid_skey = o_f.product_wid_skey(+)
          and o_f.invoice_number(+) = 10
    If you want to outer join to a table, you have to include a ( + ) on each of its columns in the where clause (or cope with them possibly being null). Personally, I find ANSI syntax easier to work with when dealing with outer joins:
    select o_fs.invoice_number
           , o_fs.product_id o_fs_product_id
           , p_d.product_id p_d_product_id
           , p_d.row_wid_skey p_d_row_wid_skey
           , o_f.product_wid_skey
    from w_orders_fs o_fs
    left outer join w_product_d  p_d
    on o_fs.product_id = p_d.product_id
    and p_d.current_flg = 'Y'
    left outer join w_orders_f o_f
    on p_d.row_wid_skey = o_f.product_wid_skey
    and o_f.invoice_number = 10
    where o_fs.invoice_number = 10

  • Toplink outer join issue using ExpressionBuilder getAlllowingNull

    I am trying to retrieve some records through a Toplink outer join expression using ExpressionBuilder's getAllowingNull() with an IN clause but I don't get the correct results.
    In my setup I have the following structure
    CREATE TABLE BOX
    MY_BOX_ID NUMBER(10) PRIMARY KEY
    , MY_CODE VARCHAR2(30) NOT NULL CONSTRAINT u_code UNIQUE
    CREATE TABLE ITEM
    MY_ITEM_ID NUMBER(10) PRIMARY KEY
    ,MY_TYPE NUMBER(6) NOT NULL
    ,BOX_ID REFERENCES BOX(MY_BOX_ID)
    INSERT INTO BOX values (1, '001');
    INSERT INTO ITEM values (1, 1, 1);
    INSERT INTO ITEM values (2, 1, null);
    The Toplink mappings are the most common ones and the code that retrieves the results is
    Vector vals = new Vector();
    vals.add(new String('001'));
    Vector dbList = null;
    try
    DatabaseSession dbSession = getToplinkSession();
    ReadAllQuery query = new ReadAllQuery();
    query.setReferenceClass(Item.class);
    ExpressionBuilder expBuilder = new ExpressionBuilder();
    Expression exp = expBuilder.getAllowingNull("Box").get("myCode").in(vals);
    query.setSelectionCriteria(exp);
    dbList = (Vector) dbSession.executeQuery(query);
    catch(Exception e)
    e.printStackTrace();
    When I run the piece of code Toplink generates the following DB query
    SELECT t1.MY_ITEM_ID, t1.MY_TYPE FROM BOX t0, ITEM t1 WHERE ((t0.MY_CODE IN ('001')) AND (t0.MY_BOX_ID (+) = t1.BOX_ID))
    which returns just the record for which the foreign key is not null
    MY_ITEM_ID MY_TYPE
    1 1
    However I would have expected to get back two records including the one where the foreign key box_id is null. That have happened if the generated SQL would have been:
    SELECT t1.MY_ITEM_ID, t1.MY_TYPE FROM BOX t0, ITEM t1 WHERE ((t0.MY_CODE (+) IN ('001')) AND (t0.MY_BOX_ID (+) = t1.BOX_ID))
    with the outer join operator applied to the query key as well.
    I was wondering if someone could provide some advice on how to get the correct result.
    Thanks for any help,
    Lucian

    Hello,
    Calling builder.getAllowingNull("name_of_field_in_MyJDO"); returns an expression that is not used anywhere in the following code, and so it is not used in the query.
    The addJoinedAttribute(String) on ReadAllQuery will make a simple join expression using the String as the query key. If you want to use an outerJoin instead of the simple inner join created, try:
    readAllQry.addJoinedAttribute(builder.getAllowingNull("name_of_field_in_MyJDO"));
    instead. You will also want to remove any joining statements added at the mapping level made in trying to get this to work, otherwise the inner join specified though those options will still be used.
    Best Regards,
    Chris

  • Outer join issue

    Hi all,
    I have a question regarding to Outer joins. This is my situation:
    Sales (fact table)
    id_company
    id_product
    yearmonth
    units
    dollars
    Products (dimension table)
    id_company
    id_product
    The 2 tables joins by id_company and id_product.
    For a month, I need to get the units and dollars of all the products, if a product is not sold in that month the units and dollars will be zero.
    The following query doesn't retrieve the correct results, because a product that is not sold in a month could be in another.
    select
    p.id_company, p.id_product, sum(s.units), sum(dollars)
    from
    products p, sales s
    where
    p.id_company = s.id_company(+)
    and p.id_product = s.id_product(+)
    and s.yearmonth = 200805
    group by p.id_company, p.id_product
    So this query gives the correct results:
    select
    p.id_company, p.id_product, sum(s.units), sum(dollars)
    from
    products p,
    (select * from sales where yearmonth = 200805) s
    where
    p.id_company = s.id_company(+)
    and p.id_product = s.id_product(+)
    group by p.id_company, p.id_product
    My question is, how can I implement the 2nd query in OBI? Is there an easier way to perform the select without sub-select?
    Thanks in advance.

    You need to bring in the yearmonth from the product table itself for this to work.
    e.g. if you product has 100 rows and you have 10 yearmonths, then your new product table will have 100*10 = 1000 rows. You can achieve this by snowflaking in physical layer (time --> product on 1=1 complex join) . keep the time-fact join in physical layer.
    (If you don't want above, then create a view in db or physical layer with time full outer join product and joinng the resultant view to fact on yearmonth, id_companyand id_product )
    Then bring the yearmonth column in product logical table in the same LTS with outer join specified.
    In answers, use p.id_company, p.id_product, sum(s.units), sum(dollars)where p.yearmonth is filtered.

  • Outer Join Issues

    Hi Guys,
    I am using Oracle 10G database. When I am running the below query I am naturally getting an error as there is an outer join to more then one table:
    SELECT
      MV_VAA_INC_MONTHLY_SUMMARY.Month_ID,
      MV_VAA_INC_MONTHLY_SUMMARY.PRIORITY,
      sum(MV_VAA_INC_MONTHLY_SUMMARY.CLOSED),
      decode(MV_VAA_INC_MONTHLY_SUMMARY.SLA_MET, 1, 0, 1),
      MV_VAA_INC_MONTHLY_SUMMARY.INCIDENT_NUMBER,
      to_char(MV_VAA_INC_MONTHLY_SUMMARY.FIRST_DAY_OF_THE_MONTH, 'Mon')||' '||to_char(MV_VAA_INC_MONTHLY_SUMMARY.FIRST_DAY_OF_THE_MONTH, 'yy'),
      INC_BREACH_SLA_DETAILS.RESPONSIBILITY
    FROM
      MV_VAA_INC_MONTHLY_SUMMARY , HPD_HELP_DESK,
       INC_BREACH_SLA_DETAILS,
       MIS_QUEUES_RESP  INC_MIS_QUEUES_RESP 
    WHERE
       ( INC_MIS_QUEUES_RESP.RESP = ANY ('TCS', 'NONTCS')  )
       AND
       ( ( MV_VAA_INC_MONTHLY_SUMMARY.FIRST_DAY_OF_THE_MONTH ) BETWEEN ( add_months(trunc(sysdate,'MM'), -4) ) AND ( trunc(sysdate,'MM') -1 )  )
       AND
       MV_VAA_INC_MONTHLY_SUMMARY.Month_ID = 201110
       AND
       MV_VAA_INC_MONTHLY_SUMMARY.INCIDENT_NUMBER (+) = HPD_HELP_DESK.INCIDENT_NUMBER
       AND
       INC_BREACH_SLA_DETAILS.INCIDENT_NUMBER=HPD_HELP_DESK.INCIDENT_NUMBER (+)
       AND
       INC_MIS_QUEUES_RESP.SUPPORT_GROUP_ID=HPD_HELP_DESK.ASSIGNED_GROUP_ID (+)
    GROUP BY
      MV_VAA_INC_MONTHLY_SUMMARY.Month_ID,
      MV_VAA_INC_MONTHLY_SUMMARY.PRIORITY,
      decode(MV_VAA_INC_MONTHLY_SUMMARY.SLA_MET, 1, 0, 1),
      MV_VAA_INC_MONTHLY_SUMMARY.INCIDENT_NUMBER,
      to_char(MV_VAA_INC_MONTHLY_SUMMARY.FIRST_DAY_OF_THE_MONTH, 'Mon')||' '||to_char(MV_VAA_INC_MONTHLY_SUMMARY.FIRST_DAY_OF_THE_MONTH, 'yy'),
      INC_BREACH_SLA_DETAILS.RESPONSIBILITY
    HAVING
      sum(MV_VAA_INC_MONTHLY_SUMMARY.CLOSED)  =  1---------------------
    But when i am running the below query somewhat similar I am not getting an error.
    SELECT
      MV_VAA_INC_MONTHLY_SUMMARY.Month_ID,
      MV_VAA_INC_MONTHLY_SUMMARY.PRIORITY,
      sum(MV_VAA_INC_MONTHLY_SUMMARY.CLOSED),
      decode(MV_VAA_INC_MONTHLY_SUMMARY.SLA_MET, 1, 0, 1),
      MV_VAA_INC_MONTHLY_SUMMARY.INCIDENT_NUMBER,
      to_char(MV_VAA_INC_MONTHLY_SUMMARY.FIRST_DAY_OF_THE_MONTH, 'Mon')||' '||to_char(MV_VAA_INC_MONTHLY_SUMMARY.FIRST_DAY_OF_THE_MONTH, 'yy'),
      INC_BREACH_SLA_DETAILS.RESPONSIBILITY
    FROM
      MV_VAA_INC_MONTHLY_SUMMARY RIGHT OUTER JOIN HPD_HELP_DESK ON (MV_VAA_INC_MONTHLY_SUMMARY.INCIDENT_NUMBER=HPD_HELP_DESK.INCIDENT_NUMBER)
       LEFT OUTER JOIN INC_BREACH_SLA_DETAILS ON (INC_BREACH_SLA_DETAILS.INCIDENT_NUMBER=HPD_HELP_DESK.INCIDENT_NUMBER)
       LEFT OUTER JOIN MIS_QUEUES_RESP  INC_MIS_QUEUES_RESP ON (INC_MIS_QUEUES_RESP.SUPPORT_GROUP_ID=HPD_HELP_DESK.ASSIGNED_GROUP_ID) 
    WHERE
       ( INC_MIS_QUEUES_RESP.RESP = ANY ('TCS', 'NONTCS')  )
       AND
       ( ( MV_VAA_INC_MONTHLY_SUMMARY.FIRST_DAY_OF_THE_MONTH ) BETWEEN ( add_months(trunc(sysdate,'MM'), -4) ) AND ( trunc(sysdate,'MM') -1 )  )
       AND
       INC_BREACH_SLA_DETAILS.RESPONSIBILITY  NOT IN  ( 'NONE'  )
       AND
       MV_VAA_INC_MONTHLY_SUMMARY.Month_ID = 201110
    GROUP BY
      MV_VAA_INC_MONTHLY_SUMMARY.Month_ID,
      MV_VAA_INC_MONTHLY_SUMMARY.PRIORITY,
      decode(MV_VAA_INC_MONTHLY_SUMMARY.SLA_MET, 1, 0, 1),
      MV_VAA_INC_MONTHLY_SUMMARY.INCIDENT_NUMBER,
      to_char(MV_VAA_INC_MONTHLY_SUMMARY.FIRST_DAY_OF_THE_MONTH, 'Mon')||' '||to_char(MV_VAA_INC_MONTHLY_SUMMARY.FIRST_DAY_OF_THE_MONTH, 'yy'),
      INC_BREACH_SLA_DETAILS.RESPONSIBILITY
    HAVING
      sum(MV_VAA_INC_MONTHLY_SUMMARY.CLOSED)  =  1-------------------------
    Please can you advise the reason.
    Cheers,
    Shazin
    Edited by: BluShadow on 11-Nov-2011 10:54
    added {noformat}{noformat} tags. Please read {message:id=9360002} and learn to do this yourself.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   

    I might be going mad because the code as mentioned previously is difficult to read.
    But my point regarding questioning whether the joins were correct was because even if the non-Ansi sql did work, I'm not sure that the two statements you're written represent the same logic.
    And questioning that brought me back to whether your original version was even logically correct even if technically flawed.
    Simplifying some of the statements, in the non-ANSI statements you have three tables in this relationship:
    AND   MV_VAA_INC_MONTHLY_SUMMARY.INCIDENT_NUMBER (+) = HPD_HELP_DESK.INCIDENT_NUMBER
    AND   INC_BREACH_SLA_DETAILS.INCIDENT_NUMBER=HPD_HELP_DESK.INCIDENT_NUMBER (+)And you have replaced it with:
             MV_VAA_INC_MONTHLY_SUMMARY
    RIGHT OUTER JOIN
             HPD_HELP_DESK
    ON (MV_VAA_INC_MONTHLY_SUMMARY.INCIDENT_NUMBER=HPD_HELP_DESK.INCIDENT_NUMBER)
    LEFT OUTER JOIN
             INC_BREACH_SLA_DETAILS
    ON (INC_BREACH_SLA_DETAILS.INCIDENT_NUMBER=HPD_HELP_DESK.INCIDENT_NUMBER)If I try to walk through this with some simpler tables, the results are not the same (unless I've made a silly error which is distinctly possible).
    So, if that's true, then it might work but you're asking a different question in the two sql statements.
    Setup:
    SQL> create table t1
      2  (col1  number
      3  ,col2  number
      4  ,col3  varchar2(2));
    Table created.
    SQL> insert into t1
      2  values (1,1,'T1');
    1 row created.
    SQL> insert into t1
      2  values (2,2,'T1');
    1 row created.
    SQL> insert into t1
      2  values (3,3,'T1');
    1 row created.
    SQL> insert into t1
      2  values (4,4,'T1');
    1 row created.
    SQL> create table t2
      2  (col1  number
      3  ,col3  varchar2(2));
    Table created.
    SQL>
    SQL> insert into t2
      2  values (2,'T2');
    1 row created.
    SQL> insert into t2
      2  values (3,'T2');
    1 row created.Two table join representing HPD_HELP_DESK to MV_VAA_INC_MONTHLY_SUMMARY (+) - no problem.
    SQL> select t1.*, t2.*
      2  from   t2
      3  ,      t1
      4  where  t1.col1  = t2.col1 (+);
          COL1       COL2 CO       COL1 CO
             2          2 T1          2 T2
             3          3 T1          3 T2
             4          4 T1
             1          1 T1
    SQL>
    SQL> select t1.*, t2.*
      2  from   t2
      3  right outer join
      4         t1
      5  on    (t1.col1 = t2.col1);
          COL1       COL2 CO       COL1 CO
             2          2 T1          2 T2
             3          3 T1          3 T2
             4          4 T1
             1          1 T1But add in third table representing INC_BREACH_SLA_DETAILS and it all starts to go wrong.
    SQL> create table t3
      2  (col1  number
      3  ,col2  varchar2(2));
    Table created.
    SQL>
    SQL> insert into t3
      2  values (1,'T3');
    1 row created.
    SQL> insert into t3
      2  values (2,'T3');
    1 row created.
    SQL> commit;
    Commit complete.
    SQL> select t1.*, t2.*,t3.*
      2  from   t2
      3  ,      t1
      4  ,      t3
      5  where  t1.col1     = t2.col1 (+)
      6  and    t1.col2 (+) = t3.col1;
          COL1       COL2 CO       COL1 CO       COL1 CO
             2          2 T1          2 T2          2 T3
             1          1 T1                        1 T3
    SQL>
    SQL>
    SQL> select t1.*, t2.*, t3.*
      2  from   t2
      3  right outer join
      4         t1
      5  on    (t1.col1 = t2.col1)
      6  left outer join
      7         t3
      8  on    (t3.col1 = t1.col2);
          COL1       COL2 CO       COL1 CO       COL1 CO
             1          1 T1                        1 T3
             2          2 T1          2 T2          2 T3
             4          4 T1
             3          3 T1          3 T2
    SQL> Edited by: Dom Brooks on Nov 11, 2011 2:35 PM
    Edited example so the two join join on different t1 columns
    Added t3 col to select.
    Edited by: Dom Brooks on Nov 11, 2011 2:38 PM
    Edited by: Dom Brooks on Nov 11, 2011 3:02 PM

  • Outer join issue in ODI

    Hello Everyone,
    I have two tables : A (col1, col2, col3) and B (col1, col2, col3) in two databases. My objective is to do a left outer join between these tables, apply an additional filtering criteria using a where clause, and finally populate the result set into a target data store. In essence this is what I want to achieve,
    SELECT * FROM A x, B y
    WHERE
    x.col1 = y.col1(+) AND
    x.col2 = y.col2(+) AND
    x.col1 IN (SELECT col1 FROM B)
    So, in the designer to fulfill the first two conditions I specify the join as left outer join. Then I add the third condition. When I run the interface I observe that the tool inserts a "+" right next to the select in the third condition. Thus the query looks like this,
    x.col1 = y.col1(+) AND
    x.col2 = y.col2(+) AND
    x.col1 IN (SELECT(+) col1 FROM B)
    This of course throws an error with the message that "+" cannot be used in the select list. Has anyone solved this problem before? Any help is greatly appreciated.
    Edited by: Sankash on Dec 8, 2008 4:00 AM
    Edited by: Sankash on Dec 8, 2008 9:26 AM

    Hi Nag,
    As you asked to reply to this query by email, let me try to contribute.
    The editor window is common to all "points" at ODI, it means that it will opens with the very same options in a column mapping, filter or step procedure.
    The set operator should be used respecting the limits of each object.
    About the query that is the correct behavior but, of course, do not work to subqueries.
    Just let the join as a simple one and write the plus signal directly at join code but not at filter code.
    This will works with one consequence. The symbol of the join between the tables will be showed with no left or right join information, but just visual.
    Does it help you?

  • Non-ANSI Outer Join Operator Issue (reposted due to text issues)

    I am currently using Designer 11.5.0.0. Itu2019s XI Rel 2, but Iu2019m not sure what service pack. I have created several universes with outer joins against a SQL Server 2005 database, but when I try using them in a Crystal report, I get the following error:
    Failed to retrieve date from the database. Details: 42000:[Microsoft][ODBC SQL Server Driver][SQL Server] The query uses non-ANSI outer join operators (u201C=u201D or u201C=u201D). To run this query without modification, please set the compatibility level for current database to 80 or lower, using stored procedure sp_dbcmptlevel. It is strongly recommended to rewrite the query using ANSI outer join operators (LEFT OUTER JOIN, RIGHT OUTER JOIN). In the future versions of SQL Server, non-ANSI join operators will not be supported even in backward-compatibility modes.
    Here is my ODBC DSN configuration:
    Microsoft SQL Server ODBC Driver Version 03.85.1132
    Data Source Name: FlexOPS
    Data Source Description:
    Server: dalsvrw031
    Database: (Default)
    Language: (Default)
    Translate Character
    Data: Yes
    Log Long Running Queries: No
    Log Driver Statistics: No
    Use Integrated Security: No
    Use Regional Settings: No
    Prepared Statements Option: Drop temporary procedures on disconnect
    Use Failover Server: No
    Use ANSI Quoted Identifiers: Yes
    Use ANSI Null, Paddings and Warnings: Yes
    Data Encryption: No
    Okay, so I understand what the issue is. It appears that the version of Designer that I am using does not default the ANSI92 parameter to u201CYesu201D. So all the outer joins I have created in each of my universe are using the old *= as the join operator. And apparently, the ODBC driver I am using is not very happy with that.
    As I understand it from what Iu2019ve read on other sites, I have the following options:
    1) Set the ANSI92 parameter to Yes, drop all my joins, close and re-open Designer, and recreate all of the joins.
    2) Find a different driver or connectivity method that will support non-ANSI joins.
    3) Set my database back to SQL 2000 compatibility.
    Option 1 is unappealing as it will cause a lot of time redoing all the work that Iu2019ve spent the past month doing. Option 2 is only a band-aid fix at best. Option 3 really isnu2019t an option for us.

    So I am wondering what other options I have to change these non-ANSI joins to ANSI compatible joins. Do I need to update Designer with a service pack? Is there a script out there that will automatically do this in each of the universes? I would appreciate any suggestions or guidance on this.
    Thanks,
    Lee

  • Non-ANSI Outer Join Operator Issue

    I am currently using Designer 11.5.0.0.  Itu2019s XI Rel 2, but Iu2019m not sure what service pack.  I have created several universes with outer joins against a SQL Server 2005 database, but when I try using them in a Crystal report, I get the following error:
    Failed to retrieve date from the database.
    Details:  42000:[Microsoft][ODBC SQL Server Driver][SQL Server] The query uses non-ANSI outer join operators (u201C=u201D or u201C=u201D).  To run this query without modification, please set the compatibility level for current database to 80 or lower, using stored procedure sp_dbcmptlevel.  It is strongly recommended to rewrite the query using ANSI outer join operators (LEFT OUTER JOIN, RIGHT OUTER JOIN).  In the future versions of SQL Server, non-ANSI join operators will not be supported even in backward-compatibility modes.
    Here is my ODBC DSN configuration:
    Microsoft SQL Server ODBC Driver Version 03.85.1132
    Data Source Name: FlexOPS
    Data Source Description:
    Server: dalsvrw031
    Database: (Default)
    Language: (Default)
    Translate Character Data: Yes
    Log Long Running Queries: No
    Log Driver Statistics: No
    Use Integrated Security: No
    Use Regional Settings: No
    Prepared Statements Option: Drop temporary procedures on disconnect
    Use Failover Server: No
    Use ANSI Quoted Identifiers: Yes
    Use ANSI Null, Paddings and Warnings: Yes
    Data Encryption: No
    Okay, so I understand what the issue is.  It appears that the version of Designer that I am using does not default the ANSI92 parameter to u201CYesu201D.  So all the outer joins I have created in each of my universe are using the old *= as the join operator.  And apparently, the ODBC driver I am using is not very happy with that.
    As I understand it from what Iu2019ve read on other sites, I have the following options:
    1)   Set the ANSI92 parameter to Yes, drop all my joins, close and re-open Designer, and recreate all of the joins.
    2)   Find a different driver or connectivity method that will support non-ANSI joins.
    3)   Set my database back to SQL 2000 compatibility.
    Option 1 is unappealing as it will cause a lot of time redoing all the work that Iu2019ve spent the past month doing.  Option 2 is only a band-aid fix at best.  Option 3 really isnu2019t an option for us.
    So I am wondering what other options I have to change these non-ANSI joins to ANSI compatible joins.  Do I need to update Designer with a service pack?  Is there a script out there that will automatically do this in each of the universes?
    I would appreciate any suggestions or guidance on this.
    Thanks,
    Lee
    Edited by: Lee Vance on Jul 6, 2009 10:02 PM

    Hi,
    try the following:
    open your universe in the Universe designer, go to File->Parameter, select the Parameter tab and change the value of the ANSI92 parameter from No to Yes.
    Regards,
    Stratos

  • Issues with limit/filter on outer join table in BQY

    I'm converting a series of BQY's from Brio 6.6 to Hyperion 9.3. I have some questions about the "use ODBC outer join syntax on limits" option in the OCE. I sort of understand this option's purpose, but I don't completely understand the SQL I'm seeing. For example Brio 6.6 is generating the following SQL statement:
    SELECT * FROM tblA AL1 LEFT OUTER JOIN tblB AL38 ON (AL38.ParentID=AL1.ChildID AND
    AL38.Data='SomeData') WHERE ((NOT AL38.Action IS NULL))
    Now, Hyperion 9.3 generated the SQL statement as follows:
    SELECT * FROM tblA AL1 LEFT OUTER JOIN tblB AL38 ON (AL38.ParentID=AL1.ChildID AND
    AL38.Data='SomeData') AND (NOT AL38.Response IS NULL))
    My questions are:
    1) Why isn't the "NOT AL38.Action IS NULL" statement included in the outer join in Brio? My limited understanding of the "use ODBC outer join syntax on limits" seems to indicate that it should end up there. I want the SQL to look like this, but I don't know why Brio generates this SQL.
    2) How can I get Hyperion to generate the same SQL as Brio? And still use the OCE with "use ODBC outer join syntax on limits" selected?

    Setting the Cardinality of Department > Employee role to OptionalOne
    gives rise to cartesian join (which is a bigger issue).
    Therefore, the Cardinality of Department > Employee role should remain as
    OptionalMany (default).
    This means, the outer join problem still remains unsolved. I have, therefore,
    unmarked the above answer by me.
    The question is - why has Report Builder been designed in such a way that the primary entity is always the child entity when attributes are selected from both parent and child entities?
    Most people desire that all the rows of the parent entity be fetched irrespective of whether there are corresponding rows in the child entity or not. Report Builder tool should not dictate what the user wants to get, meaning it is not right to assume
    that the focus of the report is Employee when attributes are selected from both Department and Employee. Report Builder should not make the child entity (i.e., Employee) as the primary entity when the user selects attributes from the child entity after
    having selected attributes from the parent entity.
    I am sorry to say that clients may not accept the Report Builder tool as this does not fetch the records as desired.
    I hope there is someone who can suggest how the outer join problem can be solved by just tweaking the properties of the report model (SMDL).
    Besides, the end users are business users and are not tech savvy. They are not expected to modify queries. They would simply drag and drop attributes from entities to create adhoc reports.

  • Issues with using Outer join in Data Template

    Hi all,
    this is my data in two tables .
    Table Ronny1
    colA colB
    1 u
    2 v
    3 x
    Table Ronny2
    colC colD
    1 q
    2 r
    This is my data template
    <dataTemplate name="MGF" dataSourceRef="Source1">
         <dataQuery>
              <sqlStatement name="Q1" dataSourceRef="Source1">
                   <![CDATA[select C, D  from Ronny2]]>
              </sqlStatement>
              <sqlStatement name="Q2" dataSourceRef="Source2">
                   <![CDATA[select A , B from lokesh1 where A = :C]]>
              </sqlStatement>
         </dataQuery>
         <dataStructure>
              <group name="G1" source="Q1">
                   <group name="G2" source="Q2">
                        <element name="A" value="A"/>
                        <element name="B" value="B"/>
                   </group>
              </group>
         </dataStructure>
    </dataTemplate>
    Now this would give me result as
    A B
    1 u
    2 v
    however my requirement is this
    A B
    1 u
    2 v
    3 x
    that is, i want to display all the rows of table Ronny1 and matching rows from table Ronny2. I tried modifiying my second sql as
    <![CDATA[select A , B from lokesh1 where A = :C (+)]]> ( using a outer join)
    but this does give me correct data and comes back with the cartesion product.
    Can anyone please answer this for me that how can we use the outer join in data templaes.
    Thanks
    Ronny

    hey vetsrini,
    sorry for the confusion here,
    actually i want to display all the rows from table Ronny1 and i am also pulling in the matching rows from table Ronny2 and my data structure looks as ( pulling in column D from table Ronny2)
    <dataStructure>
    <group name="G1" source="Q1">
    <group name="G2" source="Q2">
    <element name="A" value="A"/>
    <element name="B" value="B"/>
    <element name="D" value="D"/>
    </group>
    </group>
    </dataStructure>
    and this is what i want the output to be
    A B D
    1 u q
    2 v r
    3 x
    Hence the row where A <> C the data in the D column will be null, same as in the case of outer join.
    any suggestions
    Thx
    Ronny

  • Outer Join Performance Issue

    Dear All,
    Please help me in tuning the below query as it is including the outer join and is going for full table scans.
    Query :
    SELECT
    T27.CONFLICT_ID,
    T27.LAST_UPD,
    T27.CREATED,
    T27.LAST_UPD_BY,
    T27.CREATED_BY,
    T27.MODIFICATION_NUM,
    T27.ROW_ID,
    T24.ATTRIB_39,
    T27.REMIT_ADDR_ORG_ID,
    T27.REMIT_ORG_EXT_ID,
    T16.NAME,
    T25.ACCNT_TYPE_CD,
    T27.RECAL_TAX_SRV_FLG,
    T27.PROJ_ID,
    T8.PROJ_NUM,
    T8.BU_ID,
    T5.NAME,
    T8.INTEGRATION_ID,
    T12.CURCY_CD,
    T25.PR_BL_ADDR_ID,
    T25.URL,
    T27.TTL_INVC_AMT,
    T27.INVC_TYPE_CD,
    T27.TTL_PD_AMT,
    T3.CG_ASSSET_ID,
    T17.ASSET_NUM,
    T27.VENDR_INVOICE_NUM,
    T4.TOT_QTY_SHIP,
    T4.TOT_EXTND_PRICE,
    T27.ACCNT_ID,
    T25.INTEGRATION_ID,
    T25.NAME,
    T25.BU_ID,
    T25.AVAIL_CREDIT_AMT,
    T10.NAME,
    T27.AGREEMENT_ID,
    T4.TOT_EXTND_TAX,
    T27.STMT_SOURCE_CD,
    T4.SRC_INVLOC_ID,
    T27.STATUS_CD,
    T4.TOT_QTY_BONUS,
    T27.X_DEPOSIT_AMT,
    T27.COMMENTS,
    T27.INVC_FULLY_PAID_DT,
    T26.SEQ_NUM,
    T27.ELEMENT_ID,
    T26.INSCLM_ID,
    T14.INSCLAIM_NUM,
    T27.BL_PER_ID,
    T27.INS_CLAIM_ID,
    T27.FN_ACCNT_ID,
    T27.CUSTOMER_REF_NUM,
    T27.TTL_NONREC_AMT,
    T25.OU_NUM,
    T24.ATTRIB_39,
    T27.AMT_CURCY_CD,
    T2.CCNUM_ENCRPKEY_REF,
    T18.PR_DEPOSIT_ID,
    T19.DISCNT_RULE_CD,
    T27.ORDER_ID,
    T4.STATUS_CHG_FLG,
    T25.MAIN_PH_NUM,
    T25.MAIN_FAX_PH_NUM,
    T27.DELINQUENT_FLG,
    T15.LOGIN,
    T25.PR_POSTN_ID,
    T4.ORDER_NUM,
    T22.ADDR,
    T22.ZIPCODE,
    T27.INVC_NUM,
    T27.INVC_DT,
    T22.COUNTRY,
    T22.CITY,
    T27.BL_ADDR_ID,
    T23.NAME,
    T27.POSTED_DT,
    T20.NAME,
    T27.BL_PERIOD_ID,
    T27.GOODS_DLVRD_TS,
    T23.NET_DAYS,
    T27.PAYMENT_TERM_ID,
    T23.DUE_DT,
    T27.DUE_DT,
    T27.VOID_REASON_TEXT,
    T27.DEPT_CD,
    T24.ATTRIB_60,
    T24.ATTRIB_28,
    T21.AMT,
    T1.STATE,
    T1.ADDR,
    T1.ADDR_LINE_2,
    T1.COUNTRY,
    T1.CITY,
    T1.ZIPCODE,
    T11.LOGIN,
    T21.ROW_ID,
    T9.ROW_ID,
    T1.ROW_ID,
    T13.ROW_ID,
    T7.ROW_ID
    FROM
    SIEBEL.S_ADDR_PER T1,
    SIEBEL.S_PTY_PAY_PRFL T2,
    SIEBEL.S_INVLOC T3,
    SIEBEL.S_ORDER T4,
    SIEBEL.S_ORG_EXT T5,
    SIEBEL.S_POSTN T6,
    SIEBEL.S_PARTY T7,
    SIEBEL.S_PROJ T8,
    SIEBEL.S_CON_ADDR T9,
    SIEBEL.S_ORG_EXT T10,
    SIEBEL.S_USER T11,
    SIEBEL.S_DOC_QUOTE T12,
    SIEBEL.S_ACCNT_POSTN T13,
    SIEBEL.S_INS_CLAIM T14,
    SIEBEL.S_USER T15,
    SIEBEL.S_ORG_EXT T16,
    SIEBEL.S_ASSET T17,
    SIEBEL.S_ORDER_TNTX T18,
    SIEBEL.S_ORG_EXT_TNTX T19,
    SIEBEL.S_PERIOD T20,
    SIEBEL.S_DEPOSIT_TNT T21,
    SIEBEL.S_ADDR_PER T22,
    SIEBEL.S_PAYMENT_TERM T23,
    SIEBEL.S_ORG_EXT_X T24,
    SIEBEL.S_ORG_EXT T25,
    SIEBEL.S_INSCLM_ELMNT T26,
    SIEBEL.S_INVOICE T27
    WHERE
    T25.BU_ID = T10.PAR_ROW_ID (+) AND
    T26.INSCLM_ID = T14.ROW_ID (+) AND
    T27.ELEMENT_ID = T26.ROW_ID (+) AND
    T27.LAST_UPD_BY = T15.PAR_ROW_ID (+) AND
    T4.QUOTE_ID = T12.ROW_ID (+) AND
    T3.CG_ASSSET_ID = T17.ROW_ID (+) AND
    T27.BL_ADDR_ID = T22.ROW_ID (+) AND
    T8.BU_ID = T5.PAR_ROW_ID (+) AND
    T27.PER_PAY_PRFL_ID = T2.ROW_ID (+) AND
    T27.REMIT_ORG_EXT_ID = T16.PAR_ROW_ID (+) AND
    T27.PROJ_ID = T8.ROW_ID (+) AND
    T27.BL_PERIOD_ID = T20.ROW_ID (+) AND
    T27.PAYMENT_TERM_ID = T23.ROW_ID (+) AND
    T12.BU_ID = T19.PAR_ROW_ID (+) AND
    T27.ACCNT_ID = T25.PAR_ROW_ID (+) AND
    T27.ORDER_ID = T18.ROW_ID (+) AND
    T4.SRC_INVLOC_ID = T3.ROW_ID (+) AND
    T27.ORDER_ID = T4.ROW_ID (+) AND
    T27.ACCNT_ID = T24.PAR_ROW_ID (+) AND
    T18.PR_DEPOSIT_ID = T21.ROW_ID (+) AND
    T27.BL_ADDR_ID = T9.ADDR_PER_ID (+) AND
    T27.ACCNT_ID = T9.ACCNT_ID (+) AND
    T27.BL_ADDR_ID = T1.ROW_ID (+) AND
    T25.PR_POSTN_ID = T13.POSITION_ID (+) AND
    T25.ROW_ID = T13.OU_EXT_ID (+) AND
    T13.POSITION_ID = T7.ROW_ID (+) AND
    T13.POSITION_ID = T6.PAR_ROW_ID (+) AND
    T6.PR_EMP_ID = T11.PAR_ROW_ID (+) AND
    (T27.INVC_TYPE_CD = :1) AND
    (T27.DEPT_CD = :2);
    Explan Plan Output :
    PLAN_TABLE_OUTPUT
    Plan hash value: 3132260827
    | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
    | 0 | SELECT STATEMENT | | 1 | 1958 | 1896K (11)| 00:50:46 |
    | 1 | NESTED LOOPS OUTER | | 1 | 1958 | 1896K (11)| 00:50:46 |
    | 2 | NESTED LOOPS OUTER | | 1 | 1922 | 1896K (11)| 00:50:46 |
    | 3 | NESTED LOOPS OUTER | | 1 | 1885 | 1896K (11)| 00:50:46 |
    | 4 | NESTED LOOPS OUTER | | 1 | 1861 | 1896K (11)| 00:50:46 |
    | 5 | NESTED LOOPS OUTER | | 1 | 1849 | 1896K (11)| 00:50:46 |
    | 6 | NESTED LOOPS OUTER | | 1 | 1817 | 1896K (11)| 00:50:46 |
    | 7 | NESTED LOOPS OUTER | | 1 | 1792 | 1896K (11)| 00:50:46 |
    | 8 | NESTED LOOPS OUTER | | 1 | 1771 | 1896K (11)| 00:50:46 |
    | 9 | NESTED LOOPS OUTER | | 1 | 1739 | 1896K (11)| 00:50:46 |
    | 10 | NESTED LOOPS OUTER | | 1 | 1483 | 1896K (11)| 00:50:46 |
    | 11 | NESTED LOOPS OUTER | | 1 | 1451 | 1896K (11)| 00:50:46 |
    | 12 | NESTED LOOPS OUTER | | 1 | 1419 | 1896K (11)| 00:50:46 |
    | 13 | NESTED LOOPS OUTER | | 1 | 1361 | 1896K (11)| 00:50:46 |
    | 14 | NESTED LOOPS OUTER | | 1 | 1276 | 1896K (11)| 00:50:46 |
    | 15 | NESTED LOOPS OUTER | | 1 | 1202 | 1896K (11)| 00:50:46 |
    | 16 | NESTED LOOPS OUTER | | 1 | 1108 | 1896K (11)| 00:50:46 |
    | 17 | NESTED LOOPS OUTER | | 1 | 1087 | 1896K (11)| 00:50:46 |
    | 18 | NESTED LOOPS OUTER | | 1 | 1040 | 1896K (11)| 00:50:46 |
    | 19 | NESTED LOOPS OUTER | | 1 | 939 | 1896K (11)| 00:50:46 |
    | 20 | NESTED LOOPS OUTER | | 1 | 894 | 1896K (11)| 00:50:46 |
    | 21 | NESTED LOOPS OUTER | | 1 | 868 | 1896K (11)| 00:50:46 |
    | 22 | NESTED LOOPS OUTER | | 1 | 843 | 1896K (11)| 00:50:46 |
    | 23 | NESTED LOOPS OUTER | | 1 | 824 | 1896K (11)| 00:50:46 |
    | 24 | NESTED LOOPS OUTER | | 1 | 690 | 1896K (11)| 00:50:46 |
    | 25 | NESTED LOOPS OUTER | | 1 | 613 | 1896K (11)| 00:50:46 |
    | 26 | NESTED LOOPS OUTER | | 1 | 457 | 1896K (11)| 00:50:46 |
    |* 27 | TABLE ACCESS FULL | S_INVOICE | 1 | 269 | 1896K (11)| 00:50:46 |
    | 28 | TABLE ACCESS BY INDEX ROWID| S_PROJ | 1 | 188 | 1 (0)| 00:00:01 |
    |* 29 | INDEX UNIQUE SCAN | S_PROJ_P1 | 1 | | 1 (0)| 00:00:01 |
    | 30 | TABLE ACCESS BY INDEX ROWID | S_PAYMENT_TERM | 1 | 156 | 1 (0)| 00:00:01 |
    |* 31 | INDEX UNIQUE SCAN | S_PAYMENT_TERM_P1 | 1 | | 1 (0)| 00:00:01 |
    | 32 | TABLE ACCESS BY INDEX ROWID | S_INSCLM_ELMNT | 1 | 77 | 1 (0)| 00:00:01 |
    |* 33 | INDEX UNIQUE SCAN | S_INSCLM_ELMNT_P1 | 1 | | 1 (0)| 00:00:01 |
    | 34 | TABLE ACCESS BY INDEX ROWID | S_INS_CLAIM | 1 | 134 | 1 (0)| 00:00:01 |
    |* 35 | INDEX UNIQUE SCAN | S_INS_CLAIM_P1 | 1 | | 1 (0)| 00:00:01 |
    | 36 | TABLE ACCESS BY INDEX ROWID | S_PERIOD | 1 | 19 | 1 (0)| 00:00:01 |
    |* 37 | INDEX UNIQUE SCAN | S_PERIOD_P1 | 1 | | 1 (0)| 00:00:01 |
    | 38 | TABLE ACCESS BY INDEX ROWID | S_USER | 1 | 25 | 2 (0)| 00:00:01 |
    |* 39 | INDEX UNIQUE SCAN | S_USER_U2 | 1 | | 1 (0)| 00:00:01 |
    | 40 | TABLE ACCESS BY INDEX ROWID | S_ORDER_TNTX | 1 | 26 | 2 (0)| 00:00:01 |
    |* 41 | INDEX UNIQUE SCAN | S_ORDER_TNTX_P1 | 1 | | 1 (0)| 00:00:01 |
    | 42 | TABLE ACCESS BY INDEX ROWID | S_DEPOSIT_TNT | 1 | 45 | 1 (0)| 00:00:01 |
    |* 43 | INDEX UNIQUE SCAN | S_DEPOSIT_TNT_P1 | 1 | | 1 (0)| 00:00:01 |
    | 44 | TABLE ACCESS BY INDEX ROWID | S_ORDER | 1 | 101 | 2 (0)| 00:00:01 |
    |* 45 | INDEX UNIQUE SCAN | S_ORDER_P1 | 1 | | 1 (0)| 00:00:01 |
    | 46 | TABLE ACCESS BY INDEX ROWID | S_INVLOC | 1 | 47 | 1 (0)| 00:00:01 |
    |* 47 | INDEX UNIQUE SCAN | S_INVLOC_P1 | 1 | | 1 (0)| 00:00:01 |
    | 48 | TABLE ACCESS BY INDEX ROWID | S_DOC_QUOTE | 1 | 21 | 1 (0)| 00:00:01 |
    |* 49 | INDEX UNIQUE SCAN | S_DOC_QUOTE_P1 | 1 | | 1 (0)| 00:00:01 |
    | 50 | TABLE ACCESS BY INDEX ROWID | S_ORG_EXT_TNTX | 1 | 94 | 1 (0)| 00:00:01 |
    |* 51 | INDEX RANGE SCAN | S_ORG_EXT_TNTX_U1 | 1 | | 1 (0)| 00:00:01 |
    | 52 | TABLE ACCESS BY INDEX ROWID | S_PTY_PAY_PRFL | 1 | 74 | 1 (0)| 00:00:01 |
    |* 53 | INDEX UNIQUE SCAN | S_PTY_PAY_PRFL_P1 | 1 | | 1 (0)| 00:00:01 |
    | 54 | TABLE ACCESS BY INDEX ROWID | S_ADDR_PER | 1 | 85 | 2 (0)| 00:00:01 |
    |* 55 | INDEX UNIQUE SCAN | S_ADDR_PER_P1 | 1 | | 1 (0)| 00:00:01 |
    | 56 | TABLE ACCESS BY INDEX ROWID | S_ADDR_PER | 1 | 58 | 1 (0)| 00:00:01 |
    |* 57 | INDEX UNIQUE SCAN | S_ADDR_PER_P1 | 1 | | 1 (0)| 00:00:01 |
    | 58 | TABLE ACCESS BY INDEX ROWID | S_ORG_EXT | 1 | 32 | 1 (0)| 00:00:01 |
    |* 59 | INDEX UNIQUE SCAN | S_ORG_EXT_U3 | 1 | | 1 (0)| 00:00:01 |
    | 60 | TABLE ACCESS BY INDEX ROWID | S_ORG_EXT | 1 | 32 | 1 (0)| 00:00:01 |
    |* 61 | INDEX UNIQUE SCAN | S_ORG_EXT_U3 | 1 | | 1 (0)| 00:00:01 |
    | 62 | TABLE ACCESS BY INDEX ROWID | S_ORG_EXT | 1 | 256 | 2 (0)| 00:00:01 |
    |* 63 | INDEX UNIQUE SCAN | S_ORG_EXT_U3 | 1 | | 1 (0)| 00:00:01 |
    | 64 | TABLE ACCESS BY INDEX ROWID | S_ACCNT_POSTN | 1 | 32 | 3 (0)| 00:00:01 |
    |* 65 | INDEX RANGE SCAN | S_ACCNT_POSTN_U1 | 1 | | 2 (0)| 00:00:01 |
    | 66 | TABLE ACCESS BY INDEX ROWID | S_POSTN | 1 | 21 | 1 (0)| 00:00:01 |
    |* 67 | INDEX UNIQUE SCAN | S_POSTN_U2 | 1 | | 1 (0)| 00:00:01 |
    | 68 | TABLE ACCESS BY INDEX ROWID | S_USER | 1 | 25 | 2 (0)| 00:00:01 |
    |* 69 | INDEX UNIQUE SCAN | S_USER_U2 | 1 | | 1 (0)| 00:00:01 |
    | 70 | TABLE ACCESS BY INDEX ROWID | S_ORG_EXT | 1 | 32 | 2 (0)| 00:00:01 |
    |* 71 | INDEX UNIQUE SCAN | S_ORG_EXT_U3 | 1 | | 1 (0)| 00:00:01 |
    |* 72 | INDEX UNIQUE SCAN | S_PARTY_P1 | 1 | 12 | 1 (0)| 00:00:01 |
    | 73 | TABLE ACCESS BY INDEX ROWID | S_ASSET | 1 | 24 | 2 (0)| 00:00:01 |
    |* 74 | INDEX UNIQUE SCAN | S_ASSET_P1 | 1 | | 2 (0)| 00:00:01 |
    | 75 | TABLE ACCESS BY INDEX ROWID | S_ORG_EXT_X | 1 | 37 | 2 (0)| 00:00:01 |
    |* 76 | INDEX RANGE SCAN | S_ORG_EXT_X_U1 | 1 | | 2 (0)| 00:00:01 |
    | 77 | TABLE ACCESS BY INDEX ROWID | S_CON_ADDR | 1 | 36 | 3 (0)| 00:00:01 |
    |* 78 | INDEX RANGE SCAN | S_CON_ADDR_U1 | 1 | | 2 (0)| 00:00:01 |
    Predicate Information (identified by operation id):
    27 - filter("T27"."DEPT_CD"=:2 AND "T27"."INVC_TYPE_CD"=:1)
    29 - access("T27"."PROJ_ID"="T8"."ROW_ID"(+))
    31 - access("T27"."PAYMENT_TERM_ID"="T23"."ROW_ID"(+))
    33 - access("T27"."ELEMENT_ID"="T26"."ROW_ID"(+))
    35 - access("T26"."INSCLM_ID"="T14"."ROW_ID"(+))
    37 - access("T27"."BL_PERIOD_ID"="T20"."ROW_ID"(+))
    39 - access("T27"."LAST_UPD_BY"="T15"."PAR_ROW_ID"(+))
    41 - access("T27"."ORDER_ID"="T18"."ROW_ID"(+))
    43 - access("T18"."PR_DEPOSIT_ID"="T21"."ROW_ID"(+))
    45 - access("T27"."ORDER_ID"="T4"."ROW_ID"(+))
    47 - access("T4"."SRC_INVLOC_ID"="T3"."ROW_ID"(+))
    49 - access("T4"."QUOTE_ID"="T12"."ROW_ID"(+))
    51 - access("T12"."BU_ID"="T19"."PAR_ROW_ID"(+))
    53 - access("T27"."PER_PAY_PRFL_ID"="T2"."ROW_ID"(+))
    55 - access("T27"."BL_ADDR_ID"="T1"."ROW_ID"(+))
    57 - access("T27"."BL_ADDR_ID"="T22"."ROW_ID"(+))
    59 - access("T8"."BU_ID"="T5"."PAR_ROW_ID"(+))
    61 - access("T27"."REMIT_ORG_EXT_ID"="T16"."PAR_ROW_ID"(+))
    63 - access("T27"."ACCNT_ID"="T25"."PAR_ROW_ID"(+))
    65 - access("T25"."ROW_ID"="T13"."OU_EXT_ID"(+) AND "T25"."PR_POSTN_ID"="T13"."POSITION_ID"(+))
    67 - access("T13"."POSITION_ID"="T6"."PAR_ROW_ID"(+))
    69 - access("T6"."PR_EMP_ID"="T11"."PAR_ROW_ID"(+))
    71 - access("T25"."BU_ID"="T10"."PAR_ROW_ID"(+))
    72 - access("T13"."POSITION_ID"="T7"."ROW_ID"(+))
    74 - access("T3"."CG_ASSSET_ID"="T17"."ROW_ID"(+))
    76 - access("T27"."ACCNT_ID"="T24"."PAR_ROW_ID"(+))
    78 - access("T27"."BL_ADDR_ID"="T9"."ADDR_PER_ID"(+) AND "T27"."ACCNT_ID"="T9"."ACCNT_ID"(+))
    filter("T27"."ACCNT_ID"="T9"."ACCNT_ID"(+))
    117 rows selected.
    We are using 10.2.0.3 oracle version.

    Hi
    according to the explain plan, > 99% of the cost of the query is coming from a single operation -- step 27, full scan of S_INVOICE table.
    This probably means that there are no usable indexes on DEPT_CD and/or INVC_TYPE_CD.
    So start by tuning SELECT * FROM S_INVOICE T27 WHERE ("T27"."DEPT_CD"=:2 AND "T27"."INVC_TYPE_CD"=:1)
    BTW the plan shows that 1 row is to be returned, while Oracle actually returns 117 -- this means that the optimizer estimates are not very reliable here.
    Best regards,
    Nikolay

  • ANSI SQL 92 SYNTAX OUTER JOIN PERFORMANCE ISSUE

    Good Morning
    Could anyone explain why the excution time for these two (ment to be identical)
    queries run so differently.
    oracle syntax execution time 1.06 seconds
    select COUNT(*) from
    PL_EVENT_VIEW pev,
    PL_EVENT_STAFF_VIEW pesv
    WHERE pev.EVENT_ID=PESV.EVENT_ID(+)
    AND pev.WEEKS=PESV.WEEK_NUM(+)
    AND pev.event_id=2520
    ansi sql 92 syntax execution time 7.05 seconds
    select COUNT(*) from
    PL_EVENT_VIEW pev
    LEFT JOIN PL_EVENT_STAFF_VIEW pesv
    ON (pev.EVENT_ID=PESV.EVENT_ID
    AND pev.WEEKS=PESV.WEEK_NUM)
    WHERE pev.event_id=2520
    Thanks
    David Hills

    BTW Oracle outer join operator (+) and ANSI SQL OUTER JOIN syntax are NOT equivalent. Consider following:
    DROP TABLE T1;
    CREATE TABLE T1 (C1 NUMBER);
    DROP TABLE T2;
    CREATE TABLE T2 (C2 NUMBER);
    DROP TABLE T3;
    CREATE TABLE T3 (C3 NUMBER);
    -- Following SELECT works:
    SELECT COUNT(*)
         FROM T1, T2, T3
         WHERE C2 = C1
              AND C3(+) = C1
    COUNT(*)
    0
    -- But:
    SELECT COUNT(*)
         FROM T1, T2, T3
         WHERE C2 = C1
              AND C3(+) = C1
              AND C3(+) = C2
    AND C3(+) = C1
    ERROR at line 4:
    ORA-01417: a table may be outer joined to at most one other table
    -- However with ANSI syntax:
    SELECT COUNT(*)
         FROM T1
         JOIN T2 ON (C2 = C1)
         LEFT JOIN T3 ON (C3 = C1 AND C3 = C2)
    COUNT(*)
    0

  • Issue on left outer join query in 10G

    Dear Mr./Mrs./Ms. Oracle expertise,
    The following query structure can function properly in Oracle 9i, but not work in Oracle 10G.
    Please kindly advise what happened in Oracle 10G?
    Is it a bug in 10G? If yes, any patch for it?
    select a.col1,
    a.col2,
    a.col5,
    b.col3,
    b.col4
    from t1 a
    inner join t2 c on c.col1 = a.col1
    left join (select col3
    col4
    from t3) b
    on b.col1 = a.col1
    and a.col2 = 'Y' <---------- seems 10G cannot allow this condition
    where a.col5 = 123;
    Purpose of above SQL
    ====================
    Only those records from t1 table with a.col2 = 'Y' will
    do the left outer join to "b" table and get the columns b.col3 and b.col4
    Result set in Oracle 9i
    =======================
    col1 col2 col5 col3 col4
    AAA N 111
    BBB N 222
    CCC Y 333 XYZ OOO
    DDD Y 444 QPR 111
    Result set in Oracle 10G
    ========================
    col1 col2 col5 col3 col4
    AAA N 111
    BBB N 222
    CCC Y 333
    DDD Y 444
    Rgds,
    Ken Chan

    Dear Schneider,
    Sorry that there was a typo in my query.
    Below is the revised query.
    select a.col1,
    a.col2,
    a.col5,
    b.col3,
    b.col4
    from t1 a
    inner join t2 c on c.col1 = a.col1
    left join (select col1,
    col3,
    col4
    from t3) b
    on b.col1 = a.col1
    and a.col2 = 'Y' <---------- seems 10G cannot allow this condition
    where a.col5 = 123;
    Thanks.
    Rgds,
    ken Chan

Maybe you are looking for

  • How do i save a proof of payment off of a safari tab, IPAD?

    I got a proof of payment open on one of my tabs on safari, but it doesnt want to give me and option to save it - it only keeps on looking for a printer. How do I save info from a tab on safari from my Ipad? any info would be much appreciated, cheers

  • Purchase Order  - matrix

    Hi,   I would like to place some data from an array in my code to the matrix in Purchase Order Screen.But the Below code is throwing "Invalid Column" error If oApplication.Forms.ActiveForm.TypeEx = "142" Then                 oMatrix = oApplication.Fo

  • Exporting data in tables to an Excel spreadsheet?

    Is there a script or another way to export or save a documents tables (multiple tables over several pages) to an excel spreadsheet? I have found a solution which involves exporting each spread as a html file which i can then open straight in excel bu

  • Command line arguments

    Hey there, I have a program that uses a command line argument at runtime to get a txt file which is then loaded into my program. c:\>java FileName infile.txt I want to catch what args[0] is so I can print the file name the user entered to the screen

  • SwfPanel Not Loading from SWC

    I'm working in Flash CS5, with FlashDevelop as my external text editor. Everything is AS3. I have a custom component I've created that has HTML text content. I  created a small Flex 3.5 application as a SWFPanel Custom UI for this.  Nothing fancy - r