Skip to Main Content

SQL & PL/SQL

Announcement

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

select statement return null when it should not

Eslam_ElbyalyJun 1 2016 — edited Jun 16 2016

HI ,

Oracle db 10g rel2 , windows 7 ,

CREATE TABLE CURRENCIES

(

  ID           NUMBER,

  NAME         VARCHAR2(50 BYTE),

  DESCRIPTION  VARCHAR2(100 BYTE),

  ACTIVE       NUMBER(1)

);

ALTER TABLE CURRENCIES ADD (

  CONSTRAINT CURRENCIES_PK

PRIMARY KEY

(ID));

CREATE TABLE SUPPLIERS_AND_CUSTOMERS

(

  ID            NUMBER CONSTRAINT NNC_CUSTOMERSV1_CUSTOMER_NO NOT NULL,

  NAME          VARCHAR2(100 BYTE),

  WEBSITE       VARCHAR2(50 BYTE),

  NOTES         VARCHAR2(200 BYTE),

  FIRM          VARCHAR2(70 BYTE),

  TYPE          NUMBER,

  ACCOUNT_TYPE  NUMBER,

  EMAIL         VARCHAR2(90 BYTE)

);

COMMENT ON COLUMN SUPPLIERS_AND_CUSTOMERS.ACCOUNT_TYPE IS 'CUSTOMER , SUPPLIER , CUSTOMER_AND_SUPPLIER = 1 ,2 ,3 RESPECTIVELY .';

COMMENT ON COLUMN SUPPLIERS_AND_CUSTOMERS.TYPE IS '??? ?????? ?? ??????, ???? ????? , ???? ???? , ????';

ALTER TABLE SUPPLIERS_AND_CUSTOMERS ADD (

  CONSTRAINT SUPPLIER_PK

PRIMARY KEY

(ID));

CREATE TABLE SALES_ORDER

(

  ORDER_ID             NUMBER,

  CUSTOMER_ID          NUMBER,

  SALE_DATE            DATE,

  PAYMENT_METHOD       VARCHAR2(1 BYTE),

  STATUS               VARCHAR2(1 BYTE),

  DISCOUNT             NUMBER,

  NOTES                VARCHAR2(100 BYTE),

  INSTALLMENTS_NUMBER  NUMBER,

  DISCOUNT_UNIT        NUMBER,

  CREATED_BY           VARCHAR2(50 BYTE),

  MODIFIED_BY          VARCHAR2(50 BYTE),

  MODIFY_DATE          DATE,

  REP                  VARCHAR2(50 BYTE),

  SALE_CUR             NUMBER

);

COMMENT ON COLUMN SALES_ORDER.REP IS 'Representative';

ALTER TABLE SALES_ORDER ADD (

  CONSTRAINT SALES_ORDER_PK

PRIMARY KEY

(ORDER_ID));

ALTER TABLE SALES_ORDER ADD (

  CONSTRAINT SO_CURR_SALECUR_FK

FOREIGN KEY (SALE_CUR)

REFERENCES CURRENCIES (ID));

CREATE TABLE SALES_ORDER_DETAIL

(

  ORDER_ID        NUMBER,

  UNIT_PRICE      NUMBER(5,2),

  DISCOUNT        NUMBER(5,2),

  BONUS           NUMBER,

  EXPIRY_DATE     DATE,

  QTY             NUMBER,

  SALE_UNIT_CODE  NUMBER,

  SERIAL          NUMBER,

  SALE_TAX        NUMBER,

  DISCOUNT_UNIT   NUMBER,

  ITEM_ID         NUMBER,

  CREATED_BY      VARCHAR2(50 BYTE),

  MODIFIED_BY     VARCHAR2(50 BYTE),

  MODIFY_DATE     DATE,

  CREATE_DATE     DATE

);

ALTER TABLE SALES_ORDER_DETAIL ADD (

  CONSTRAINT ORDRID_ITMID_EXPDATE_CPK

PRIMARY KEY

(ORDER_ID, ITEM_ID, EXPIRY_DATE));

ALTER TABLE SALES_ORDER_DETAIL ADD (

  CONSTRAINT SOD_SO_ORDERID_FK

FOREIGN KEY (ORDER_ID)

REFERENCES SALES_ORDER (ORDER_ID)

    ON DELETE CASCADE);

CREATE TABLE SALES_ORDER_PAYMENTS

(

  PAYMENT_ID      NUMBER,

  ORDER_ID        NUMBER,

  PAYMENT_DATE    DATE,

  PAYMENT_AMOUNT  NUMBER,

  CREATED_BY      VARCHAR2(50 BYTE),

  MODIFIED_BY     VARCHAR2(50 BYTE),

  MODIFY_DATE     DATE,

  ADVANCE         NUMBER(1),

  NOTES           VARCHAR2(200 BYTE)

);

ALTER TABLE SALES_ORDER_PAYMENTS ADD (

  CONSTRAINT PO_PAYMENTS_PK

PRIMARY KEY

(PAYMENT_ID));

ALTER TABLE SALES_ORDER_PAYMENTS ADD (

  CONSTRAINT SO_SOP_ORDERID_FK

FOREIGN KEY (ORDER_ID)

REFERENCES SALES_ORDER (ORDER_ID));

CREATE TABLE SALES_RETURN

(

  ORDER_ID          NUMBER,

  CUSTOMER_ID       NUMBER,

  SALE_DATE         DATE,

  NOTES             VARCHAR2(100 BYTE),

  CREATED_BY        VARCHAR2(50 BYTE),

  MODIFIED_BY       VARCHAR2(50 BYTE),

  MODIFY_DATE       DATE,

  RETURN_DATE       DATE,

  RETURN_REASON_ID  NUMBER,

  SALES_RETURN_ID   NUMBER,

  STATUS            VARCHAR2(1 BYTE),

  REP               VARCHAR2(90 BYTE),

  CUR               NUMBER

);

COMMENT ON COLUMN SALES_RETURN.STATUS IS 'TEMP OR PERMANENT';

ALTER TABLE SALES_RETURN ADD (

  CONSTRAINT SALES_RETURN_PK

PRIMARY KEY

(SALES_RETURN_ID));

ALTER TABLE SALES_RETURN ADD (

  CONSTRAINT SR_SO_ORDERID_FK

FOREIGN KEY (ORDER_ID)

REFERENCES SALES_ORDER (ORDER_ID));

ALTER TABLE SALES_RETURN ADD (

  CONSTRAINT SR_CUSTOMERID_FK

FOREIGN KEY (CUSTOMER_ID)

REFERENCES SUPPLIERS_AND_CUSTOMERS (ID));

ALTER TABLE SALES_RETURN ADD (

  CONSTRAINT SR_CUR_ID_FK

FOREIGN KEY (CUR)

REFERENCES CURRENCIES (ID));

CREATE TABLE SALES_RETURN_DETAIL

(

  ORDER_ID          NUMBER,

  EXPIRY_DATE       DATE,

  QTY               NUMBER,

  RETURN_UNIT_CODE  NUMBER,

  SERIAL            NUMBER,

  ITEM_ID           NUMBER,

  CREATED_BY        VARCHAR2(50 BYTE),

  MODIFIED_BY       VARCHAR2(50 BYTE),

  MODIFY_DATE       DATE,

  CREATE_DATE       DATE,

  SALES_RETURN_ID   NUMBER,

  UNIT_PRICE        NUMBER

);

ALTER TABLE SALES_RETURN_DETAIL ADD (

  CONSTRAINT SRD_SR_ORDER_ITM_EXP

PRIMARY KEY

(SALES_RETURN_ID, ORDER_ID, ITEM_ID, EXPIRY_DATE));

ALTER TABLE SALES_RETURN_DETAIL ADD (

  CONSTRAINT SR_SRD_FK

FOREIGN KEY (SALES_RETURN_ID)

REFERENCES SALES_RETURN (SALES_RETURN_ID)

    ON DELETE CASCADE);

SET DEFINE OFF;

Insert into CURRENCIES

   (ID, NAME, DESCRIPTION, ACTIVE)

Values

   (2, 'L.E', 'جنيه مصرى', 0);

Insert into CURRENCIES

   (ID, NAME, DESCRIPTION, ACTIVE)

Values

   (3, '$', NULL, 0);

Insert into CURRENCIES

   (ID, NAME, DESCRIPTION, ACTIVE)

Values

   (4, 'S.R', NULL, 1);

COMMIT;

SET DEFINE OFF;

Insert into SUPPLIERS_AND_CUSTOMERS

   (ID, NAME, WEBSITE, NOTES, FIRM,

    TYPE, ACCOUNT_TYPE, EMAIL)

Values

   (4, 'حسن بدوى', 'ثقثث', 'ءؤرءؤ', 'يبيس',

    NULL, 3, NULL);

Insert into SUPPLIERS_AND_CUSTOMERS

   (ID, NAME, WEBSITE, NOTES, FIRM,

    TYPE, ACCOUNT_TYPE, EMAIL)

Values

   (1, 'ماهر', 'ق ق ق tt', 'ض ض', 'ثق ثق ثق',

    NULL, 2, NULL);

Insert into SUPPLIERS_AND_CUSTOMERS

   (ID, NAME, WEBSITE, NOTES, FIRM,

    TYPE, ACCOUNT_TYPE, EMAIL)

Values

   (8, 'مورد ماهر', NULL, NULL, NULL,

    NULL, 3, NULL);

Insert into SUPPLIERS_AND_CUSTOMERS

   (ID, NAME, WEBSITE, NOTES, FIRM,

    TYPE, ACCOUNT_TYPE, EMAIL)

Values

   (10, 'يس', NULL, NULL, NULL,

    NULL, 1, NULL);

Insert into SUPPLIERS_AND_CUSTOMERS

   (ID, NAME, WEBSITE, NOTES, FIRM,

    TYPE, ACCOUNT_TYPE, EMAIL)

Values

   (13, 'ه', 'dfij', 'هثتق', 'منت',

    2, 1, 'Es@Gmail.Com');

Insert into SUPPLIERS_AND_CUSTOMERS

   (ID, NAME, WEBSITE, NOTES, FIRM,

    TYPE, ACCOUNT_TYPE, EMAIL)

Values

   (14, 'سيسس', NULL, NULL, NULL,

    NULL, 1, NULL);

Insert into SUPPLIERS_AND_CUSTOMERS

   (ID, NAME, WEBSITE, NOTES, FIRM,

    TYPE, ACCOUNT_TYPE, EMAIL)

Values

   (15, 'يبيب', NULL, NULL, NULL,

    NULL, 1, NULL);

Insert into SUPPLIERS_AND_CUSTOMERS

   (ID, NAME, WEBSITE, NOTES, FIRM,

    TYPE, ACCOUNT_TYPE, EMAIL)

Values

   (16, 'سيسي', NULL, NULL, NULL,

    NULL, 1, NULL);

Insert into SUPPLIERS_AND_CUSTOMERS

   (ID, NAME, WEBSITE, NOTES, FIRM,

    TYPE, ACCOUNT_TYPE, EMAIL)

Values

   (17, 'يب', NULL, NULL, NULL,

    NULL, 1, NULL);

Insert into SUPPLIERS_AND_CUSTOMERS

   (ID, NAME, WEBSITE, NOTES, FIRM,

    TYPE, ACCOUNT_TYPE, EMAIL)

Values

   (18, 'ي', NULL, NULL, NULL,

    NULL, 1, NULL);

Insert into SUPPLIERS_AND_CUSTOMERS

   (ID, NAME, WEBSITE, NOTES, FIRM,

    TYPE, ACCOUNT_TYPE, EMAIL)

Values

   (19, 'يب', NULL, NULL, NULL,

    NULL, 1, NULL);

Insert into SUPPLIERS_AND_CUSTOMERS

   (ID, NAME, WEBSITE, NOTES, FIRM,

    TYPE, ACCOUNT_TYPE, EMAIL)

Values

   (20, 'يص', NULL, NULL, NULL,

    NULL, 1, NULL);

Insert into SUPPLIERS_AND_CUSTOMERS

   (ID, NAME, WEBSITE, NOTES, FIRM,

    TYPE, ACCOUNT_TYPE, EMAIL)

Values

   (21, 'ثقث', NULL, NULL, NULL,

    NULL, 1, NULL);

Insert into SUPPLIERS_AND_CUSTOMERS

   (ID, NAME, WEBSITE, NOTES, FIRM,

    TYPE, ACCOUNT_TYPE, EMAIL)

Values

   (22, 'يب', NULL, NULL, NULL,

    NULL, 1, NULL);

Insert into SUPPLIERS_AND_CUSTOMERS

   (ID, NAME, WEBSITE, NOTES, FIRM,

    TYPE, ACCOUNT_TYPE, EMAIL)

Values

   (23, 'يبي', NULL, NULL, NULL,

    NULL, 1, NULL);

Insert into SUPPLIERS_AND_CUSTOMERS

   (ID, NAME, WEBSITE, NOTES, FIRM,

    TYPE, ACCOUNT_TYPE, EMAIL)

Values

   (24, 'ثقث', NULL, NULL, NULL,

    NULL, 1, NULL);

Insert into SUPPLIERS_AND_CUSTOMERS

   (ID, NAME, WEBSITE, NOTES, FIRM,

    TYPE, ACCOUNT_TYPE, EMAIL)

Values

   (25, 'سيسي', NULL, NULL, NULL,

    NULL, 1, NULL);

Insert into SUPPLIERS_AND_CUSTOMERS

   (ID, NAME, WEBSITE, NOTES, FIRM,

    TYPE, ACCOUNT_TYPE, EMAIL)

Values

   (7, 'raed', NULL, NULL, 'يب',

    NULL, 1, NULL);

Insert into SUPPLIERS_AND_CUSTOMERS

   (ID, NAME, WEBSITE, NOTES, FIRM,

    TYPE, ACCOUNT_TYPE, EMAIL)

Values

   (5, 'سامح', 'شيسب', 'يب', 'يبي',

    NULL, 3, NULL);

Insert into SUPPLIERS_AND_CUSTOMERS

   (ID, NAME, WEBSITE, NOTES, FIRM,

    TYPE, ACCOUNT_TYPE, EMAIL)

Values

   (11, 'يبيب', NULL, NULL, NULL,

    NULL, 1, NULL);

Insert into SUPPLIERS_AND_CUSTOMERS

   (ID, NAME, WEBSITE, NOTES, FIRM,

    TYPE, ACCOUNT_TYPE, EMAIL)

Values

   (9, 'بييب', NULL, NULL, NULL,

    NULL, 1, NULL);

COMMIT;

SET DEFINE OFF;

Insert into SALES_ORDER

   (ORDER_ID, CUSTOMER_ID, SALE_DATE, PAYMENT_METHOD, STATUS,

    DISCOUNT, NOTES, INSTALLMENTS_NUMBER, DISCOUNT_UNIT, CREATED_BY,

    MODIFIED_BY, MODIFY_DATE, REP, SALE_CUR)

Values

   (28, 7, TO_DATE('04/20/2016 15:25:06', 'MM/DD/YYYY HH24:MI:SS'), 'I', 'P',

    1, 'صثص يبي بيبي', 4, 0, NULL,

    NULL, NULL, NULL, 4);

Insert into SALES_ORDER

   (ORDER_ID, CUSTOMER_ID, SALE_DATE, PAYMENT_METHOD, STATUS,

    DISCOUNT, NOTES, INSTALLMENTS_NUMBER, DISCOUNT_UNIT, CREATED_BY,

    MODIFIED_BY, MODIFY_DATE, REP, SALE_CUR)

Values

   (31, 10, TO_DATE('05/08/2016 00:02:50', 'MM/DD/YYYY HH24:MI:SS'), 'I', 'T',

    NULL, 'ننت منهت هتها', 1, NULL, NULL,

    NULL, NULL, NULL, 4);

Insert into SALES_ORDER

   (ORDER_ID, CUSTOMER_ID, SALE_DATE, PAYMENT_METHOD, STATUS,

    DISCOUNT, NOTES, INSTALLMENTS_NUMBER, DISCOUNT_UNIT, CREATED_BY,

    MODIFIED_BY, MODIFY_DATE, REP, SALE_CUR)

Values

   (25, 7, TO_DATE('04/23/2016 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 'C', 'P',

    NULL, NULL, NULL, NULL, NULL,

    NULL, NULL, NULL, 4);

Insert into SALES_ORDER

   (ORDER_ID, CUSTOMER_ID, SALE_DATE, PAYMENT_METHOD, STATUS,

    DISCOUNT, NOTES, INSTALLMENTS_NUMBER, DISCOUNT_UNIT, CREATED_BY,

    MODIFIED_BY, MODIFY_DATE, REP, SALE_CUR)

Values

   (26, 7, TO_DATE('04/22/2016 15:16:14', 'MM/DD/YYYY HH24:MI:SS'), 'C', 'P',

    NULL, NULL, NULL, NULL, NULL,

    NULL, TO_DATE('04/22/2016 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), NULL, 4);

Insert into SALES_ORDER

   (ORDER_ID, CUSTOMER_ID, SALE_DATE, PAYMENT_METHOD, STATUS,

    DISCOUNT, NOTES, INSTALLMENTS_NUMBER, DISCOUNT_UNIT, CREATED_BY,

    MODIFIED_BY, MODIFY_DATE, REP, SALE_CUR)

Values

   (27, 7, TO_DATE('04/21/2016 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 'I', 'P',

    NULL, NULL, 3, NULL, NULL,

    NULL, NULL, NULL, 4);

Insert into SALES_ORDER

   (ORDER_ID, CUSTOMER_ID, SALE_DATE, PAYMENT_METHOD, STATUS,

    DISCOUNT, NOTES, INSTALLMENTS_NUMBER, DISCOUNT_UNIT, CREATED_BY,

    MODIFIED_BY, MODIFY_DATE, REP, SALE_CUR)

Values

   (32, 5, TO_DATE('05/08/2016 00:04:01', 'MM/DD/YYYY HH24:MI:SS'), 'I', 'T',

    NULL, NULL, 1, NULL, NULL,

    NULL, NULL, NULL, 4);

Insert into SALES_ORDER

   (ORDER_ID, CUSTOMER_ID, SALE_DATE, PAYMENT_METHOD, STATUS,

    DISCOUNT, NOTES, INSTALLMENTS_NUMBER, DISCOUNT_UNIT, CREATED_BY,

    MODIFIED_BY, MODIFY_DATE, REP, SALE_CUR)

Values

   (30, 4, TO_DATE('05/07/2016 20:21:18', 'MM/DD/YYYY HH24:MI:SS'), 'C', 'T',

    NULL, NULL, NULL, NULL, NULL,

    NULL, NULL, NULL, 4);

Insert into SALES_ORDER

   (ORDER_ID, CUSTOMER_ID, SALE_DATE, PAYMENT_METHOD, STATUS,

    DISCOUNT, NOTES, INSTALLMENTS_NUMBER, DISCOUNT_UNIT, CREATED_BY,

    MODIFIED_BY, MODIFY_DATE, REP, SALE_CUR)

Values

   (29, 7, TO_DATE('05/07/2016 19:59:05', 'MM/DD/YYYY HH24:MI:SS'), 'C', 'T',

    NULL, NULL, NULL, NULL, NULL,

    NULL, NULL, NULL, 4);

COMMIT;

SET DEFINE OFF;

Insert into SALES_ORDER_DETAIL

   (ORDER_ID, UNIT_PRICE, DISCOUNT, BONUS, EXPIRY_DATE,

    QTY, SALE_UNIT_CODE, SERIAL, SALE_TAX, DISCOUNT_UNIT,

    ITEM_ID, CREATED_BY, MODIFIED_BY, MODIFY_DATE, CREATE_DATE)

Values

   (28, 7, NULL, NULL, TO_DATE('10/10/2018 00:00:00', 'MM/DD/YYYY HH24:MI:SS'),

    4, 1, 1142, NULL, NULL,

    4, NULL, NULL, NULL, TO_DATE('04/22/2016 15:25:27', 'MM/DD/YYYY HH24:MI:SS'));

Insert into SALES_ORDER_DETAIL

   (ORDER_ID, UNIT_PRICE, DISCOUNT, BONUS, EXPIRY_DATE,

    QTY, SALE_UNIT_CODE, SERIAL, SALE_TAX, DISCOUNT_UNIT,

    ITEM_ID, CREATED_BY, MODIFIED_BY, MODIFY_DATE, CREATE_DATE)

Values

   (25, 3, NULL, NULL, TO_DATE('10/10/2019 00:00:00', 'MM/DD/YYYY HH24:MI:SS'),

    1, 1, 1141, NULL, NULL,

    3, NULL, NULL, NULL, TO_DATE('04/22/2016 15:11:30', 'MM/DD/YYYY HH24:MI:SS'));

Insert into SALES_ORDER_DETAIL

   (ORDER_ID, UNIT_PRICE, DISCOUNT, BONUS, EXPIRY_DATE,

    QTY, SALE_UNIT_CODE, SERIAL, SALE_TAX, DISCOUNT_UNIT,

    ITEM_ID, CREATED_BY, MODIFIED_BY, MODIFY_DATE, CREATE_DATE)

Values

   (25, 5, NULL, NULL, TO_DATE('10/10/2019 00:00:00', 'MM/DD/YYYY HH24:MI:SS'),

    2, 1, 1083, NULL, NULL,

    1, NULL, NULL, NULL, TO_DATE('04/22/2016 15:14:55', 'MM/DD/YYYY HH24:MI:SS'));

Insert into SALES_ORDER_DETAIL

   (ORDER_ID, UNIT_PRICE, DISCOUNT, BONUS, EXPIRY_DATE,

    QTY, SALE_UNIT_CODE, SERIAL, SALE_TAX, DISCOUNT_UNIT,

    ITEM_ID, CREATED_BY, MODIFIED_BY, MODIFY_DATE, CREATE_DATE)

Values

   (26, 1, 0.5, NULL, TO_DATE('10/10/2019 00:00:00', 'MM/DD/YYYY HH24:MI:SS'),

    4, 1, 1126, NULL, 4,

    2, NULL, NULL, NULL, TO_DATE('04/22/2016 15:16:14', 'MM/DD/YYYY HH24:MI:SS'));

Insert into SALES_ORDER_DETAIL

   (ORDER_ID, UNIT_PRICE, DISCOUNT, BONUS, EXPIRY_DATE,

    QTY, SALE_UNIT_CODE, SERIAL, SALE_TAX, DISCOUNT_UNIT,

    ITEM_ID, CREATED_BY, MODIFIED_BY, MODIFY_DATE, CREATE_DATE)

Values

   (26, 7, 1, NULL, TO_DATE('10/10/2018 00:00:00', 'MM/DD/YYYY HH24:MI:SS'),

    3, 1, 1142, NULL, 0,

    4, NULL, NULL, NULL, TO_DATE('04/22/2016 15:16:36', 'MM/DD/YYYY HH24:MI:SS'));

Insert into SALES_ORDER_DETAIL

   (ORDER_ID, UNIT_PRICE, DISCOUNT, BONUS, EXPIRY_DATE,

    QTY, SALE_UNIT_CODE, SERIAL, SALE_TAX, DISCOUNT_UNIT,

    ITEM_ID, CREATED_BY, MODIFIED_BY, MODIFY_DATE, CREATE_DATE)

Values

   (27, 5, NULL, NULL, TO_DATE('10/10/2019 00:00:00', 'MM/DD/YYYY HH24:MI:SS'),

    10, 1, 1083, NULL, NULL,

    1, NULL, NULL, NULL, TO_DATE('04/22/2016 15:22:17', 'MM/DD/YYYY HH24:MI:SS'));

Insert into SALES_ORDER_DETAIL

   (ORDER_ID, UNIT_PRICE, DISCOUNT, BONUS, EXPIRY_DATE,

    QTY, SALE_UNIT_CODE, SERIAL, SALE_TAX, DISCOUNT_UNIT,

    ITEM_ID, CREATED_BY, MODIFIED_BY, MODIFY_DATE, CREATE_DATE)

Values

   (28, 1, NULL, NULL, TO_DATE('10/10/2019 00:00:00', 'MM/DD/YYYY HH24:MI:SS'),

    11, 1, 1126, NULL, NULL,

    2, NULL, NULL, NULL, TO_DATE('04/22/2016 15:25:06', 'MM/DD/YYYY HH24:MI:SS'));

Insert into SALES_ORDER_DETAIL

   (ORDER_ID, UNIT_PRICE, DISCOUNT, BONUS, EXPIRY_DATE,

    QTY, SALE_UNIT_CODE, SERIAL, SALE_TAX, DISCOUNT_UNIT,

    ITEM_ID, CREATED_BY, MODIFIED_BY, MODIFY_DATE, CREATE_DATE)

Values

   (31, 6, NULL, NULL, TO_DATE('10/10/2018 00:00:00', 'MM/DD/YYYY HH24:MI:SS'),

    1, 4, 11, NULL, NULL,

    1, NULL, NULL, NULL, TO_DATE('05/08/2016 00:02:51', 'MM/DD/YYYY HH24:MI:SS'));

Insert into SALES_ORDER_DETAIL

   (ORDER_ID, UNIT_PRICE, DISCOUNT, BONUS, EXPIRY_DATE,

    QTY, SALE_UNIT_CODE, SERIAL, SALE_TAX, DISCOUNT_UNIT,

    ITEM_ID, CREATED_BY, MODIFIED_BY, MODIFY_DATE, CREATE_DATE)

Values

   (31, 1, NULL, NULL, TO_DATE('10/10/2019 00:00:00', 'MM/DD/YYYY HH24:MI:SS'),

    1, 4, 1126, NULL, NULL,

    2, NULL, NULL, NULL, TO_DATE('05/08/2016 00:03:20', 'MM/DD/YYYY HH24:MI:SS'));

Insert into SALES_ORDER_DETAIL

   (ORDER_ID, UNIT_PRICE, DISCOUNT, BONUS, EXPIRY_DATE,

    QTY, SALE_UNIT_CODE, SERIAL, SALE_TAX, DISCOUNT_UNIT,

    ITEM_ID, CREATED_BY, MODIFIED_BY, MODIFY_DATE, CREATE_DATE)

Values

   (32, 1, NULL, NULL, TO_DATE('10/10/2019 00:00:00', 'MM/DD/YYYY HH24:MI:SS'),

    1, 4, 1126, NULL, NULL,

    2, NULL, NULL, NULL, TO_DATE('05/08/2016 00:04:01', 'MM/DD/YYYY HH24:MI:SS'));

Insert into SALES_ORDER_DETAIL

   (ORDER_ID, UNIT_PRICE, DISCOUNT, BONUS, EXPIRY_DATE,

    QTY, SALE_UNIT_CODE, SERIAL, SALE_TAX, DISCOUNT_UNIT,

    ITEM_ID, CREATED_BY, MODIFIED_BY, MODIFY_DATE, CREATE_DATE)

Values

   (32, 6, NULL, NULL, TO_DATE('10/10/2018 00:00:00', 'MM/DD/YYYY HH24:MI:SS'),

    1, 4, 11, NULL, NULL,

    1, NULL, NULL, NULL, TO_DATE('05/08/2016 00:04:48', 'MM/DD/YYYY HH24:MI:SS'));

Insert into SALES_ORDER_DETAIL

   (ORDER_ID, UNIT_PRICE, DISCOUNT, BONUS, EXPIRY_DATE,

    QTY, SALE_UNIT_CODE, SERIAL, SALE_TAX, DISCOUNT_UNIT,

    ITEM_ID, CREATED_BY, MODIFIED_BY, MODIFY_DATE, CREATE_DATE)

Values

   (32, 7, NULL, NULL, TO_DATE('10/10/2018 00:00:00', 'MM/DD/YYYY HH24:MI:SS'),

    1, 1, 1142, NULL, NULL,

    4, NULL, NULL, NULL, TO_DATE('05/08/2016 00:05:07', 'MM/DD/YYYY HH24:MI:SS'));

Insert into SALES_ORDER_DETAIL

   (ORDER_ID, UNIT_PRICE, DISCOUNT, BONUS, EXPIRY_DATE,

    QTY, SALE_UNIT_CODE, SERIAL, SALE_TAX, DISCOUNT_UNIT,

    ITEM_ID, CREATED_BY, MODIFIED_BY, MODIFY_DATE, CREATE_DATE)

Values

   (30, 6, NULL, NULL, TO_DATE('10/10/2018 00:00:00', 'MM/DD/YYYY HH24:MI:SS'),

    1, 4, 11, NULL, NULL,

    1, NULL, NULL, NULL, TO_DATE('05/07/2016 20:21:18', 'MM/DD/YYYY HH24:MI:SS'));

Insert into SALES_ORDER_DETAIL

   (ORDER_ID, UNIT_PRICE, DISCOUNT, BONUS, EXPIRY_DATE,

    QTY, SALE_UNIT_CODE, SERIAL, SALE_TAX, DISCOUNT_UNIT,

    ITEM_ID, CREATED_BY, MODIFIED_BY, MODIFY_DATE, CREATE_DATE)

Values

   (30, 1, NULL, NULL, TO_DATE('10/10/2019 00:00:00', 'MM/DD/YYYY HH24:MI:SS'),

    1, 4, 1126, NULL, NULL,

    2, NULL, NULL, NULL, TO_DATE('05/07/2016 20:21:34', 'MM/DD/YYYY HH24:MI:SS'));

Insert into SALES_ORDER_DETAIL

   (ORDER_ID, UNIT_PRICE, DISCOUNT, BONUS, EXPIRY_DATE,

    QTY, SALE_UNIT_CODE, SERIAL, SALE_TAX, DISCOUNT_UNIT,

    ITEM_ID, CREATED_BY, MODIFIED_BY, MODIFY_DATE, CREATE_DATE)

Values

   (29, 5, NULL, NULL, TO_DATE('10/10/2018 00:00:00', 'MM/DD/YYYY HH24:MI:SS'),

    1, 1, 11, NULL, NULL,

    1, NULL, NULL, NULL, TO_DATE('05/07/2016 19:59:05', 'MM/DD/YYYY HH24:MI:SS'));

COMMIT;

SET DEFINE OFF;

Insert into SALES_ORDER_PAYMENTS

   (PAYMENT_ID, ORDER_ID, PAYMENT_DATE, PAYMENT_AMOUNT, CREATED_BY,

    MODIFIED_BY, MODIFY_DATE, ADVANCE, NOTES)

Values

   (1, 27, TO_DATE('04/22/2016 15:23:26', 'MM/DD/YYYY HH24:MI:SS'), 1, NULL,

    NULL, NULL, 1, NULL);

Insert into SALES_ORDER_PAYMENTS

   (PAYMENT_ID, ORDER_ID, PAYMENT_DATE, PAYMENT_AMOUNT, CREATED_BY,

    MODIFIED_BY, MODIFY_DATE, ADVANCE, NOTES)

Values

   (2, 28, TO_DATE('04/22/2016 15:27:52', 'MM/DD/YYYY HH24:MI:SS'), 3, NULL,

    NULL, NULL, 1, NULL);

Insert into SALES_ORDER_PAYMENTS

   (PAYMENT_ID, ORDER_ID, PAYMENT_DATE, PAYMENT_AMOUNT, CREATED_BY,

    MODIFIED_BY, MODIFY_DATE, ADVANCE, NOTES)

Values

   (3, 28, TO_DATE('04/22/2016 15:27:53', 'MM/DD/YYYY HH24:MI:SS'), 2, NULL,

    NULL, NULL, 2, NULL);

Insert into SALES_ORDER_PAYMENTS

   (PAYMENT_ID, ORDER_ID, PAYMENT_DATE, PAYMENT_AMOUNT, CREATED_BY,

    MODIFIED_BY, MODIFY_DATE, ADVANCE, NOTES)

Values

   (4, 31, TO_DATE('05/08/2016 00:03:53', 'MM/DD/YYYY HH24:MI:SS'), 2, NULL,

    NULL, NULL, 1, NULL);

Insert into SALES_ORDER_PAYMENTS

   (PAYMENT_ID, ORDER_ID, PAYMENT_DATE, PAYMENT_AMOUNT, CREATED_BY,

    MODIFIED_BY, MODIFY_DATE, ADVANCE, NOTES)

Values

   (5, 32, TO_DATE('05/08/2016 00:05:39', 'MM/DD/YYYY HH24:MI:SS'), 3, NULL,

    NULL, NULL, 1, NULL);

Insert into SALES_ORDER_PAYMENTS

   (PAYMENT_ID, ORDER_ID, PAYMENT_DATE, PAYMENT_AMOUNT, CREATED_BY,

    MODIFIED_BY, MODIFY_DATE, ADVANCE, NOTES)

Values

   (6, 32, TO_DATE('05/08/2016 00:05:40', 'MM/DD/YYYY HH24:MI:SS'), 4, NULL,

    NULL, NULL, 2, NULL);

COMMIT;

SET DEFINE OFF;

Insert into SALES_RETURN

   (ORDER_ID, CUSTOMER_ID, SALE_DATE, NOTES, CREATED_BY,

    MODIFIED_BY, MODIFY_DATE, RETURN_DATE, RETURN_REASON_ID, SALES_RETURN_ID,

    STATUS, REP, CUR)

Values

   (25, 7, TO_DATE('04/22/2016 15:11:29', 'MM/DD/YYYY HH24:MI:SS'), NULL, NULL,

    NULL, NULL, TO_DATE('04/25/2016 20:11:43', 'MM/DD/YYYY HH24:MI:SS'), NULL, 1,

    'T', NULL, 4);

Insert into SALES_RETURN

   (ORDER_ID, CUSTOMER_ID, SALE_DATE, NOTES, CREATED_BY,

    MODIFIED_BY, MODIFY_DATE, RETURN_DATE, RETURN_REASON_ID, SALES_RETURN_ID,

    STATUS, REP, CUR)

Values

   (28, 7, TO_DATE('04/22/2016 15:25:06', 'MM/DD/YYYY HH24:MI:SS'), NULL, NULL,

    NULL, NULL, TO_DATE('04/25/2016 20:12:09', 'MM/DD/YYYY HH24:MI:SS'), 1, 2,

    'T', NULL, 4);

COMMIT;

SET DEFINE OFF;

Insert into SALES_RETURN_DETAIL

   (ORDER_ID, EXPIRY_DATE, QTY, RETURN_UNIT_CODE, SERIAL,

    ITEM_ID, CREATED_BY, MODIFIED_BY, MODIFY_DATE, CREATE_DATE,

    SALES_RETURN_ID, UNIT_PRICE)

Values

   (25, TO_DATE('10/10/2019 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 2, 1, 1083,

    1, NULL, NULL, NULL, NULL,

    1, 5);

Insert into SALES_RETURN_DETAIL

   (ORDER_ID, EXPIRY_DATE, QTY, RETURN_UNIT_CODE, SERIAL,

    ITEM_ID, CREATED_BY, MODIFIED_BY, MODIFY_DATE, CREATE_DATE,

    SALES_RETURN_ID, UNIT_PRICE)

Values

   (25, TO_DATE('10/10/2019 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 1, 1, 1141,

    3, NULL, NULL, NULL, NULL,

    1, 3);

Insert into SALES_RETURN_DETAIL

   (ORDER_ID, EXPIRY_DATE, QTY, RETURN_UNIT_CODE, SERIAL,

    ITEM_ID, CREATED_BY, MODIFIED_BY, MODIFY_DATE, CREATE_DATE,

    SALES_RETURN_ID, UNIT_PRICE)

Values

   (28, TO_DATE('10/10/2019 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 11, 1, 1126,

    2, NULL, NULL, NULL, NULL,

    2, 1);

Insert into SALES_RETURN_DETAIL

   (ORDER_ID, EXPIRY_DATE, QTY, RETURN_UNIT_CODE, SERIAL,

    ITEM_ID, CREATED_BY, MODIFIED_BY, MODIFY_DATE, CREATE_DATE,

    SALES_RETURN_ID, UNIT_PRICE)

Values

   (28, TO_DATE('10/10/2018 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 4, 1, 1142,

    4, NULL, NULL, NULL, NULL,

    2, 7);

COMMIT;

the problem is all about customer_id=4 ,currency_id= 4 and sales_order.order_id=30 ,

that customer has a sales_order number 30 with total of 7 S.R(currency) , and the order has no rows in the sales_return , or sales_order_payments .

- the script i use is ,

SELECT (SUM(SUM_SO.ORDER_TOTAL) - nvl(SUM(SRD.QTY * SRD.UNIT_PRICE),0)  ) - NVL(SUM(SOP.PAYMENT_AMOUNT),0) DEBTOR

  FROM

    (SELECT so.order_id,

      DECODE(so.discount_unit,0,sod.items_total * (1 - 0.01 * NVL(so.discount,0)), NULL,sod.items_total, sod.items_total - so.discount ) order_total

    FROM sales_order so,

      (SELECT order_id,

        SUM(DECODE(discount_unit,0,unit_price * qty * (1 - 0.01 * NVL(discount,0)), NULL,unit_price * qty, (unit_price - NVL(discount,0)) * qty ) ) items_total

      FROM sales_order_detail

      GROUP BY order_id

      ) sod

    WHERE so.order_id = sod.order_id

    AND TRUNC(so.sale_date) BETWEEN NVL(:from_date,TRUNC(so.sale_date)) AND NVL(:to_date,TRUNC(sysdate))

    AND so.sale_cur    = :p_currency_id

    AND so.customer_id = :p_supplier_customer_id

    ) SUM_so ,

   SALES_RETURN SR , SALES_RETURN_DETAIL SRD , SALES_ORDER_PAYMENTS sop

  where ( SR.ORDER_ID(+) = SUM_so.ORDER_ID )

  and (SR.SALES_RETURN_ID = SRD.SALES_RETURN_ID)

  and (sum_so.order_id = sop.order_id(+) ) ;

- results i get = null

- results i expect :

Debtor

------------

7

Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Jul 14 2016
Added on Jun 1 2016
20 comments
3,270 views