CREATE OR REPLACE FORCE VIEW "GNPGO"."GNPGO_NNG_TESTATA_RECIPIENT" ("ROW_ID", "NNG", "ID_ESIGENZA", "DATA_ORDINE", "CODICE_FISCALE_PIVA", "OP_ID", "TIPO_SERVIZIO", "STATO", "CODICE_RIFIUTO", "DESCRIZIONE_RIFIUTO") AS (SELECT Q1.ROW_ID, Q1.NNG, Q1.ID_ESIGENZA, Q1.DATA_ORDINE, Q1.CODICE_FISCALE_PIVA, Q1.OP_ID, Q1.TIPO_SERVIZIO AS TIPO_SERVIZIO, '0' AS STATO, Q1.CODICE_RIFIUTO AS CODICE_RIFIUTO, Q1.DESCRIZIONE_RIFIUTO AS DESCRIZIONE_RIFIUTO FROM ((SELECT ROW_ID, NNG, ID_ESIGENZA, DATA_ORDINE, CODICE_FISCALE_PIVA, TIPO_SERVIZIO, OP_ID, CODICE_RIFIUTO, DESCRIZIONE_RIFIUTO FROM GNPGO_NNG_DONATING WHERE TIPO_COMUNICAZIONE = '1') Q1 LEFT OUTER JOIN (SELECT NNG, STATO, ID_ESIGENZA, CODICE_RIFIUTO, DESCRIZIONE_RIFIUTO FROM GNPGO_NNG_DONATING WHERE TIPO_COMUNICAZIONE = '2' AND STATO IS NOT NULL AND STATO <> '0') Q2 ON Q1.ID_ESIGENZA = Q2.ID_ESIGENZA AND Q1.NNG = Q2.NNG) WHERE Q2.ID_ESIGENZA IS NULL) UNION (SELECT Q1.ROW_ID, Q1.NNG, Q1.ID_ESIGENZA, Q1.DATA_ORDINE, Q1.CODICE_FISCALE_PIVA, Q1.OP_ID, Q1.TIPO_SERVIZIO AS TIPO_SERVIZIO, Q2.STATO AS STATO, Q2.CODICE_RIFIUTO AS CODICE_RIFIUTO, Q2.DESCRIZIONE_RIFIUTO AS DESCRIZIONE_RIFIUTO FROM ((SELECT ROW_ID, NNG, ID_ESIGENZA, DATA_ORDINE, CODICE_FISCALE_PIVA, TIPO_SERVIZIO, OP_ID, CODICE_RIFIUTO, DESCRIZIONE_RIFIUTO FROM GNPGO_NNG_DONATING WHERE TIPO_COMUNICAZIONE = '1') Q1 LEFT OUTER JOIN (SELECT NNG, STATO, ID_ESIGENZA, CODICE_RIFIUTO, DESCRIZIONE_RIFIUTO FROM GNPGO_NNG_DONATING WHERE TIPO_COMUNICAZIONE = '2' AND STATO IS NOT NULL AND STATO <> '0') Q2 ON Q1.ID_ESIGENZA = Q2.ID_ESIGENZA) WHERE Q2.ID_ESIGENZA IS NOT NULL);