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") AS (SELECT Q1.ROW_ID, Q1.NNG, Q1.CODICE_ORDINE, Q1.DATA_ORDINE, Q1.CODICE_FISCALE_PIVA, Q1.COD_OP_RECIPIENT, 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, CODICE_ORDINE, DATA_ORDINE, CODICE_FISCALE_PIVA, TIPO_SERVIZIO, COD_OP_RECIPIENT, CODICE_RIFIUTO, DESCRIZIONE_RIFIUTO FROM GNPGO_NNG_DONATING WHERE TIPO_COMUNICAZIONE = '1') Q1 LEFT OUTER JOIN (SELECT NNG, STATO, CODICE_ORDINE, CODICE_RIFIUTO, DESCRIZIONE_RIFIUTO FROM GNPGO_NNG_DONATING WHERE TIPO_COMUNICAZIONE = '2' AND STATO IS NOT NULL AND STATO <> '0') Q2 ON Q1.CODICE_ORDINE = Q2.CODICE_ORDINE AND Q1.NNG = Q2.NNG) WHERE Q2.CODICE_ORDINE IS NULL) UNION (SELECT Q1.ROW_ID, Q1.NNG, Q1.CODICE_ORDINE, Q1.DATA_ORDINE, Q1.CODICE_FISCALE_PIVA, Q1.COD_OP_RECIPIENT, 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, CODICE_ORDINE, DATA_ORDINE, CODICE_FISCALE_PIVA, TIPO_SERVIZIO, COD_OP_RECIPIENT, CODICE_RIFIUTO, DESCRIZIONE_RIFIUTO FROM GNPGO_NNG_DONATING WHERE TIPO_COMUNICAZIONE = '1') Q1 LEFT OUTER JOIN (SELECT NNG, STATO, CODICE_ORDINE, CODICE_RIFIUTO, DESCRIZIONE_RIFIUTO FROM GNPGO_NNG_DONATING WHERE TIPO_COMUNICAZIONE = '2' AND STATO IS NOT NULL AND STATO <> '0') Q2 ON Q1.CODICE_ORDINE = Q2.CODICE_ORDINE) WHERE Q2.CODICE_ORDINE IS NOT NULL);