CREATE OR REPLACE FORCE VIEW "GNPGO"."GNPGO_NNG_TESTATA_OP_TERZO" ("ROW_ID", "COD_OP_RECIPIENT", "CODICE_ORDINE", "DATA_ORDINE", "NNG", "OP_ID", "DAC") AS (SELECT ROW_ID, COD_OP_RECIPIENT, CODICE_ORDINE, DATA_ORDINE, NNG, OP_ID, DAC FROM GNPGO_NNG_RECIPIENT WHERE TIPO_COMUNICAZIONE = '3' UNION SELECT ROW_ID, COD_OP_RECIPIENT, CODICE_ORDINE, DATA_ORDINE, NNG, OP_ID, DAC FROM GNPGO_NNG_DONATING WHERE TIPO_COMUNICAZIONE = '3'); CREATE OR REPLACE FORCE VIEW "GNPGO"."GNPGO_NNG_TESTATA_RECIPIENT" ("ROW_ID", "NNG", "ID_ESIGENZA", "CODICE_ORDINE", "DATA_ORDINE", "CODICE_FISCALE_PIVA", "OP_DONATING", "TIPO_SERVIZIO", "DAC", "STATO", "CODICE_RIFIUTO", "DESCRIZIONE_RIFIUTO") AS (SELECT DISTINCT ROW_ID, NNG, ID_ESIGENZA, CODICE_ORDINE, DATA_ORDINE, CODICE_FISCALE_PIVA, COD_OP_DONATING, TIPO_SERVIZIO, DAC, STATO, CODICE_RIFIUTO, DESCRIZIONE_RIFIUTO FROM GNPGO_NNG_RECIPIENT WHERE TIPO_COMUNICAZIONE = '1'); CREATE OR REPLACE FORCE VIEW "GNPGO"."GNPGO_NNG_TESTATA_DONATING" ("ROW_ID", "NNG", "CODICE_ORDINE", "DATA_ORDINE", "CODICE_FISCALE_PIVA", "COD_OP_RECIPIENT", "TIPO_SERVIZIO", "STATO", "CODICE_RIFIUTO", "DESCRIZIONE_RIFIUTO", "DAC") AS (SELECT ROW_ID, NNG, CODICE_ORDINE, DATA_ORDINE, CODICE_FISCALE_PIVA, COD_OP_RECIPIENT, TIPO_SERVIZIO, STATO, CODICE_RIFIUTO, DESCRIZIONE_RIFIUTO, DAC FROM GNPGO_NNG_DONATING WHERE TIPO_COMUNICAZIONE = '1'); CREATE OR REPLACE FORCE VIEW "GNPGO"."GNPGO_NNG_TESTATA_RETURNING" ("ROW_ID", "NNG", "ID_ESIGENZA", "CODICE_ORDINE", "DATA_ORDINE", "STATO", "CODICE_RIFIUTO", "DESCRIZIONE_RIFIUTO") AS (SELECT Q1.ROW_ID, Q1.NNG, Q1.ID_ESIGENZA, Q1.CODICE_ORDINE, Q1.DATA_ORDINE, Q1.STATO AS STATO, Q1.CODICE_RIFIUTO AS CODICE_RIFIUTO, Q1.DESCRIZIONE_RIFIUTO AS DESCRIZIONE_RIFIUTO FROM ((SELECT ROW_ID, NNG, ID_ESIGENZA, CODICE_ORDINE, DATA_ORDINE, STATO, CODICE_RIFIUTO, DESCRIZIONE_RIFIUTO FROM GNPGO_NNG_RECIPIENT WHERE TIPO_COMUNICAZIONE = '9') Q1 LEFT OUTER JOIN (SELECT NNG, ID_ESIGENZA, CODICE_ORDINE, STATO, CODICE_RIFIUTO, DESCRIZIONE_RIFIUTO FROM GNPGO_NNG_RECIPIENT WHERE TIPO_COMUNICAZIONE='10') Q2 ON Q1.ID_ESIGENZA = Q2.ID_ESIGENZA LEFT OUTER JOIN (SELECT NNG, ID_ESIGENZA, CODICE_ORDINE, STATO, CODICE_RIFIUTO, DESCRIZIONE_RIFIUTO FROM GNPGO_NNG_RECIPIENT WHERE TIPO_COMUNICAZIONE='11') Q3 ON Q1.ID_ESIGENZA = Q3.ID_ESIGENZA) where Q2.STATO IS NULL AND Q3.STATO IS NULL) UNION (SELECT Q1.ROW_ID, Q1.NNG, Q1.ID_ESIGENZA, Q1.CODICE_ORDINE, Q1.DATA_ORDINE, Q2.STATO AS STATO, Q2.CODICE_RIFIUTO AS CODICE_RIFIUTO, Q2.DESCRIZIONE_RIFIUTO AS DESCRIZIONE_RIFIUTO FROM ((SELECT ROW_ID, NNG, ID_ESIGENZA, CODICE_ORDINE, DATA_ORDINE, STATO, CODICE_RIFIUTO, DESCRIZIONE_RIFIUTO FROM GNPGO_NNG_RECIPIENT WHERE TIPO_COMUNICAZIONE = '9') Q1 LEFT OUTER JOIN (SELECT NNG, ID_ESIGENZA, CODICE_ORDINE, STATO, CODICE_RIFIUTO, DESCRIZIONE_RIFIUTO FROM GNPGO_NNG_RECIPIENT WHERE TIPO_COMUNICAZIONE='10') Q2 ON Q1.ID_ESIGENZA = Q2.ID_ESIGENZA LEFT OUTER JOIN (SELECT NNG, ID_ESIGENZA, CODICE_ORDINE, STATO, CODICE_RIFIUTO, DESCRIZIONE_RIFIUTO FROM GNPGO_NNG_RECIPIENT WHERE TIPO_COMUNICAZIONE='11') Q3 ON Q1.ID_ESIGENZA = Q3.ID_ESIGENZA) where Q2.STATO IS NOT NULL) UNION (SELECT Q1.ROW_ID, Q1.NNG, Q1.ID_ESIGENZA, Q1.CODICE_ORDINE, Q1.DATA_ORDINE, Q3.STATO AS STATO, Q1.CODICE_RIFIUTO AS CODICE_RIFIUTO, Q1.DESCRIZIONE_RIFIUTO AS DESCRIZIONE_RIFIUTO FROM ((SELECT ROW_ID, NNG, ID_ESIGENZA, CODICE_ORDINE, DATA_ORDINE, STATO, CODICE_RIFIUTO, DESCRIZIONE_RIFIUTO FROM GNPGO_NNG_RECIPIENT WHERE TIPO_COMUNICAZIONE = '9') Q1 LEFT OUTER JOIN (SELECT NNG, ID_ESIGENZA, CODICE_ORDINE, STATO, CODICE_RIFIUTO, DESCRIZIONE_RIFIUTO FROM GNPGO_NNG_RECIPIENT WHERE TIPO_COMUNICAZIONE='10') Q2 ON Q1.ID_ESIGENZA = Q2.ID_ESIGENZA LEFT OUTER JOIN (SELECT NNG, ID_ESIGENZA, CODICE_ORDINE, STATO, CODICE_RIFIUTO, DESCRIZIONE_RIFIUTO FROM GNPGO_NNG_RECIPIENT WHERE TIPO_COMUNICAZIONE='11') Q3 ON Q1.ID_ESIGENZA = Q3.ID_ESIGENZA) where Q3.STATO IS NOT NULL);