==> Database is ANSI CREATE TABLE "GESXXABO" ( "NO_ABONNEMENT" INTEGER, "NO_REABO" SMALLINT, "NORECORD" INTEGER GENERATED ALWAYS AS IDENTITY (START WITH 246278, INCREMENT BY 1), "CODE_REVUE" VARCHAR(3) COLLATE "ANSI_CI", "CODE_COUPLAGE" VARCHAR(3) COLLATE "ANSI_CI", "TYPE_ABO" VARCHAR(1) COLLATE "ANSI_CI", "CA_LIVRE" VARCHAR(8) COLLATE "ANSI_CI", "SOUS_CODE_ABO" VARCHAR(1) COLLATE "ANSI_CI", "CA_FACTURE" VARCHAR(8) COLLATE "ANSI_CI", "CA_RELANCE" VARCHAR(8) COLLATE "ANSI_CI", "DT_CREAT" DATE, "DT_MODIF" DATE, "NB_SOUSCRIT" SMALLINT, "NB_EXEMPLAIRE" SMALLINT, "CODE_TARIF" VARCHAR(3) COLLATE "ANSI_CI", "MT_TARIF" DECIMAL(19,4), "CODE_TVA" VARCHAR(1) COLLATE "ANSI_CI", "TX_TVA" FLOAT, "CODE_SURTAXE" VARCHAR(3) COLLATE "ANSI_CI", "MODE_CALC_SURTAXE" VARCHAR(1) COLLATE "ANSI_CI", "MT_SURTAXE" DECIMAL(19,4), "CODE_PORT" VARCHAR(3) COLLATE "ANSI_CI", "MODE_CALC_PORT" VARCHAR(1) COLLATE "ANSI_CI", "MT_PORT" DECIMAL(19,4), "TX_COMMISSION" FLOAT, "TX_REMISE" FLOAT, "PREMIER_NO" VARCHAR(8) COLLATE "ANSI_CI", "DUREE" SMALLINT, "DERNIER_NO" VARCHAR(8) COLLATE "ANSI_CI", "GRACE_COP_A_EFF" SMALLINT, "GRACE_COP_EFF" SMALLINT, "ASSURAGE" VARCHAR(1) COLLATE "ANSI_CI", "NB_ASSURAGE_EFF" SMALLINT, "STAT1" VARCHAR(16) COLLATE "ANSI_CI", "STAT2" VARCHAR(16) COLLATE "ANSI_CI", "STAT3" VARCHAR(16) COLLATE "ANSI_CI", "STAT4" VARCHAR(16) COLLATE "ANSI_CI", "STAT5" VARCHAR(16) COLLATE "ANSI_CI", "FACTURE_EDITE" VARCHAR(1) COLLATE "ANSI_CI", "CODE_DISTRI" VARCHAR(2) COLLATE "ANSI_CI", "NB_REL_REABO" SMALLINT, "DATE_DER_REL_REABO" DATE, "NB_REL_REG" SMALLINT, "DATE_DER_REL_REG" DATE, "DER_NO_REGLEMENT" INTEGER, "SOLDE" VARCHAR(1) COLLATE "ANSI_CI", "ETAT_ABO" VARCHAR(1) COLLATE "ANSI_CI", "CODE_FACTURE" VARCHAR(1) COLLATE "ANSI_CI", "NO_FACTURE" VARCHAR(8) COLLATE "ANSI_CI", "DATE_FACTURE" DATE, "NO_AVOIR" VARCHAR(8) COLLATE "ANSI_CI", "DATE_AVOIR" DATE, "CODE_ROUTAGE" VARCHAR(3) COLLATE "ANSI_CI", "STOP_RELANCE" VARCHAR(1) COLLATE "ANSI_CI", "REF_ABO" VARCHAR(35) COLLATE "ANSI_CI", "NB_NO_SUSPENDU" SMALLINT, "REF_REMB" VARCHAR(1) COLLATE "ANSI_CI", "REGIME_TARIF" VARCHAR(1) COLLATE "ANSI_CI", "MT_PAYE" DECIMAL(19,4), "MT_ABANDON_SOLDE" DECIMAL(19,4), "CODE_EDITION" VARCHAR(4) COLLATE "ANSI_CI", "PAR_AVION" VARCHAR(1) COLLATE "ANSI_CI", "NO_COUR" VARCHAR(8) COLLATE "ANSI_CI", "NO_ABO_MAITRE" INTEGER, "NO_REABO_MAITRE" SMALLINT, "REABONNE" VARCHAR(1) COLLATE "ANSI_CI", "CC_ABO_TTC_AV_REMISE" DECIMAL(19,4) GENERATED ALWAYS AS CASE WHEN TYPE_ABO IN ('3', '4') THEN NULL ELSE CAST (IFNULL (MT_TARIF THEN 0 ELSE MT_TARIF) * IFNULL (NB_SOUSCRIT THEN 0 ELSE NB_SOUSCRIT) AS DECIMAL (19,4)) END, "CC_SURTAXE" DECIMAL(19,4) GENERATED ALWAYS AS CASE WHEN TYPE_ABO IN ('3', '4') THEN NULL WHEN MODE_CALC_SURTAXE = 'E' THEN CAST (IFNULL (MT_SURTAXE THEN 0 ELSE MT_SURTAXE) * IFNULL (NB_EXEMPLAIRE THEN 0 ELSE NB_EXEMPLAIRE) AS DECIMAL (19, 4)) WHEN MODE_CALC_SURTAXE = 'S' THEN CAST (IFNULL (MT_SURTAXE THEN 0 ELSE MT_SURTAXE) * IFNULL (NB_SOUSCRIT THEN 0 ELSE NB_SOUSCRIT) AS DECIMAL (19, 4)) ELSE IFNULL (MT_SURTAXE THEN 0 ELSE MT_SURTAXE) END, "CC_PORT" DECIMAL(19,4) GENERATED ALWAYS AS CASE WHEN TYPE_ABO IN ('3', '4') THEN NULL WHEN MODE_CALC_PORT = 'E' THEN CAST (IFNULL (MT_PORT THEN 0 ELSE MT_PORT) * IFNULL (NB_EXEMPLAIRE THEN 0 ELSE NB_EXEMPLAIRE) AS DECIMAL (19, 4)) WHEN MODE_CALC_PORT = 'S' THEN CAST (IFNULL (MT_PORT THEN 0 ELSE MT_PORT) * IFNULL (NB_SOUSCRIT THEN 0 ELSE NB_SOUSCRIT) AS DECIMAL (19, 4)) ELSE IFNULL (MT_PORT THEN 0 ELSE MT_PORT) END, "CC_REMISE_TTC" DECIMAL(19,4) GENERATED ALWAYS AS CASE WHEN TYPE_ABO IN ('3', '4') THEN NULL WHEN TX_REMISE > 100 THEN CC_ABO_TTC_AV_REMISE ELSE ROUND (CAST (IFNULL (CC_ABO_TTC_AV_REMISE THEN 0 ELSE CC_ABO_TTC_AV_REMISE) * (IFNULL (TX_REMISE THEN 0 ELSE TX_REMISE) / 100) AS DECIMAL (19, 4)) TO 2) END, "CC_ABO_TTC_AP_REMISE" DECIMAL(19,4) GENERATED ALWAYS AS CASE WHEN TYPE_ABO IN ('3', '4') THEN NULL ELSE CAST (CC_ABO_TTC_AV_REMISE - CC_REMISE_TTC AS DECIMAL (19, 4)) END, "CC_COUT_ABONNEMENT" DECIMAL(19,4) GENERATED ALWAYS AS CASE WHEN TYPE_ABO IN ('3', '4') THEN NULL ELSE CAST (CC_ABO_TTC_AP_REMISE + CC_SURTAXE + CC_PORT AS DECIMAL (19, 4)) END, "CC_RESTE_DU" DECIMAL(19,4) GENERATED ALWAYS AS CASE WHEN TYPE_ABO IN ('3', '4') THEN NULL WHEN (IFNULL(MT_PAYE THEN 0 ELSE MT_PAYE) + IFNULL (MT_ABANDON_SOLDE THEN 0 ELSE MT_ABANDON_SOLDE)) > CC_COUT_ABONNEMENT THEN 0 ELSE CAST (CC_COUT_ABONNEMENT - (IFNULL(MT_PAYE THEN 0 ELSE MT_PAYE) + IFNULL (MT_ABANDON_SOLDE THEN 0 ELSE MT_ABANDON_SOLDE)) AS DECIMAL (19, 4)) END, "CC_ABO_HT_AP_REMISE" DECIMAL(19,4) GENERATED ALWAYS AS CASE WHEN TYPE_ABO IN ('3', '4') THEN NULL WHEN IFNULL (TX_TVA THEN 0 ELSE TX_TVA) = 0 THEN CC_ABO_TTC_AP_REMISE ELSE ROUND (CAST (CC_ABO_TTC_AP_REMISE / (1 + (TX_TVA / 100)) AS DECIMAL (19, 4)) TO 2) END, "CC_TVA" DECIMAL(19,4) GENERATED ALWAYS AS CASE WHEN TYPE_ABO IN ('3', '4') THEN NULL WHEN IFNULL (TX_TVA THEN 0 ELSE TX_TVA) = 0 THEN 0 ELSE CAST (CC_ABO_TTC_AP_REMISE - CC_ABO_HT_AP_REMISE AS DECIMAL (19, 4)) END, "CC_ABO_HT_AV_REMISE" DECIMAL(19,4) GENERATED ALWAYS AS CASE WHEN TYPE_ABO IN ('3', '4') THEN NULL WHEN IFNULL (TX_TVA THEN 0 ELSE TX_TVA) = 0 THEN CC_ABO_TTC_AV_REMISE ELSE ROUND(CAST (CC_ABO_TTC_AV_REMISE / (1 + (TX_TVA / 100)) AS DECIMAL (19, 4)) TO 2) END, "CC_REMISE_HT" DECIMAL(19,4) GENERATED ALWAYS AS CASE WHEN TYPE_ABO IN ('3', '4') THEN NULL WHEN IFNULL (TX_TVA THEN 0 ELSE TX_TVA) = 0 THEN CC_REMISE_TTC ELSE CAST (CC_ABO_HT_AV_REMISE - CC_ABO_HT_AP_REMISE AS DECIMAL (19, 4)) END, CONSTRAINT "PK" PRIMARY KEY ("NO_ABONNEMENT", "NO_REABO"), CONSTRAINT "I_NORECORD" UNIQUE ("NORECORD") ) VERSION 1.00 READWRITE UNENCRYPTED INDEX PAGE SIZE 4096 BLOB BLOCK SIZE 512 PUBLISH BLOCK SIZE 512 PUBLISH COMPRESSION 0 MAX ROW BUFFER SIZE 32768 MAX INDEX BUFFER SIZE 65536 MAX BLOB BUFFER SIZE 32768 MAX PUBLISH BUFFER SIZE 32768 CREATE INDEX "I_CODE_REVUE" ON "GESXXABO" ("CODE_REVUE" COLLATE "ANSI_CI", "DT_CREAT") CREATE INDEX "I_PREMIER_NO" ON "GESXXABO" ("CODE_REVUE" COLLATE "ANSI_CI", "PREMIER_NO" COLLATE "ANSI_CI") CREATE INDEX "I_DERNIER_NO" ON "GESXXABO" ("CODE_REVUE" COLLATE "ANSI_CI", "DERNIER_NO" COLLATE "ANSI_CI") CREATE INDEX "I_SOLDE" ON "GESXXABO" ("SOLDE" COLLATE "ANSI_CI") CREATE INDEX "I_ETAT_ABO" ON "GESXXABO" ("CODE_REVUE" COLLATE "ANSI_CI", "ETAT_ABO" COLLATE "ANSI_CI") CREATE INDEX "I_NOAVOIR" ON "GESXXABO" ("NO_AVOIR" COLLATE "ANSI_CI") CREATE INDEX "I_CA_LIVRE" ON "GESXXABO" ("CA_LIVRE" COLLATE "ANSI_CI") CREATE INDEX "I_CA_FACTURE" ON "GESXXABO" ("CA_FACTURE" COLLATE "ANSI_CI") CREATE INDEX "I_CA_RELANCE" ON "GESXXABO" ("CA_RELANCE" COLLATE "ANSI_CI") CREATE INDEX "I_NOFACTURE" ON "GESXXABO" ("NO_FACTURE" COLLATE "ANSI_CI") CREATE INDEX "I_ABO_MAITRE" ON "GESXXABO" ("NO_ABO_MAITRE", "NO_REABO_MAITRE") CREATE INDEX "I_REF_ABO" ON "GESXXABO" ("REF_ABO" COLLATE "ANSI_CI") CREATE TABLE "GESXXTPA" ( "CODE_REVUE" VARCHAR(3) COLLATE "ANSI_CI", "CODE_PARUTION" VARCHAR(8) COLLATE "ANSI_CI", "NORECORD" INTEGER GENERATED ALWAYS AS IDENTITY (START WITH 6115, INCREMENT BY 1), "NO_PARUTION" INTEGER, "DATE_PARUTION" DATE, "LIBELLE" VARCHAR(32) COLLATE "ANSI_CI", "DATE_VALIDATION" DATE, CONSTRAINT "PK" PRIMARY KEY ("CODE_REVUE", "CODE_PARUTION"), CONSTRAINT "I_DATE_PARUTION" UNIQUE ("CODE_REVUE", "DATE_PARUTION"), CONSTRAINT "I_NORECORD" UNIQUE ("NORECORD") ) VERSION 1.00 READWRITE UNENCRYPTED INDEX PAGE SIZE 4096 BLOB BLOCK SIZE 512 PUBLISH BLOCK SIZE 512 PUBLISH COMPRESSION 0 MAX ROW BUFFER SIZE 32768 MAX INDEX BUFFER SIZE 65536 MAX BLOB BUFFER SIZE 32768 MAX PUBLISH BUFFER SIZE 32768 CREATE INDEX "I_DATE_VALIDATION" ON "GESXXTPA" ("CODE_REVUE" COLLATE "ANSI_CI", "DATE_VALIDATION") CREATE INDEX "I_NO_PARUTION" ON "GESXXTPA" ("CODE_REVUE" COLLATE "ANSI_CI", "NO_PARUTION") CREATE INDEX "I_DATE_MULTI" ON "GESXXTPA" ("DATE_PARUTION") CREATE TABLE "GESXXSUS" ( "NO_ABONNEMENT" INTEGER, "NO_REABO" SMALLINT, "NORECORD" INTEGER GENERATED ALWAYS AS IDENTITY (START WITH 5599, INCREMENT BY 1), "CODE_REVUE" VARCHAR(3) COLLATE "ANSI_CI", "PREMIER_NO" VARCHAR(8) COLLATE "ANSI_CI", "DERNIER_NO" VARCHAR(8) COLLATE "ANSI_CI", "CODE_MAJ" VARCHAR(1) COLLATE "ANSI_CI", "NB_SUSPENDU" SMALLINT, "DT_CREATE" DATE, "DT_MAJ" DATE, "CODE_SUSPENDU" VARCHAR(1) COLLATE "ANSI_CI", "MOTIF_SUSPENDU" VARCHAR(80) COLLATE "ANSI_CI", CONSTRAINT "PK" PRIMARY KEY ("NO_ABONNEMENT", "NO_REABO", "NORECORD"), CONSTRAINT "I_NORECORD" UNIQUE ("NORECORD") ) VERSION 1.00 READWRITE UNENCRYPTED INDEX PAGE SIZE 4096 BLOB BLOCK SIZE 512 PUBLISH BLOCK SIZE 512 PUBLISH COMPRESSION 0 MAX ROW BUFFER SIZE 32768 MAX INDEX BUFFER SIZE 65536 MAX BLOB BUFFER SIZE 32768 MAX PUBLISH BUFFER SIZE 32768 CREATE INDEX "I_CODE_SUSPENDU" ON "GESXXSUS" ("CODE_SUSPENDU" COLLATE "ANSI_CI") CREATE INDEX "I_PREMIER_NO" ON "GESXXSUS" ("NO_ABONNEMENT", "NO_REABO", "PREMIER_NO" COLLATE "ANSI_CI") ------ Original SQL Select KO in 2.16 and OK in 2.11 SELECT CUMUL.CODE_PARUTION , CUMUL.DATE_PARUTION , SUM(CUMUL.NB_ABO_ACTIF) AS NB_ABO_ACTIF , SUM(CUMUL.NB_EXEMPLAIRE_ACTIF) AS NB_EXEMPLAIRE_ACTIF , SUM(CUMUL.NB_SOUSCRIT_ACTIF) AS NB_SOUSCRIT_ACTIF , SUM(CUMUL.NB_ABO_SUS) AS NB_ABO_SUS , SUM(CUMUL.NB_EXEMPLAIRE_SUS) AS NB_EXEMPLAIRE_SUS , SUM(CUMUL.NB_SOUSCRIT_SUS) AS NB_SOUSCRIT_SUS FROM ( SELECT DECOUPAGE.CODE_PARUTION , DECOUPAGE.DATE_PARUTION , (CASE WHEN DECOUPAGE.ETAT_ABO = 'E' AND DECOUPAGE.REABONNE = 'N' THEN DECOUPAGE.NB ELSE 0 END) AS NB_ABO_ACTIF , (CASE WHEN DECOUPAGE.ETAT_ABO = 'E' AND DECOUPAGE.REABONNE = 'N' THEN DECOUPAGE.NB_EXEMPLAIRE ELSE 0 END) AS NB_EXEMPLAIRE_ACTIF , (CASE WHEN DECOUPAGE.ETAT_ABO = 'E' AND DECOUPAGE.REABONNE = 'N' THEN DECOUPAGE.NB_SOUSCRIT ELSE 0 END) AS NB_SOUSCRIT_ACTIF , (CASE WHEN DECOUPAGE.ETAT_ABO = 'S' AND DECOUPAGE.REABONNE = 'N' THEN DECOUPAGE.NB ELSE 0 END) AS NB_ABO_SUS , (CASE WHEN DECOUPAGE.ETAT_ABO = 'S' AND DECOUPAGE.REABONNE = 'N' THEN DECOUPAGE.NB_EXEMPLAIRE ELSE 0 END) AS NB_EXEMPLAIRE_SUS , (CASE WHEN DECOUPAGE.ETAT_ABO = 'S' AND DECOUPAGE.REABONNE = 'N' THEN DECOUPAGE.NB_SOUSCRIT ELSE 0 END) AS NB_SOUSCRIT_SUS FROM ( SELECT PARUTION.CODE_PARUTION , PARUTION.DATE_PARUTION , ABO.NB_EXEMPLAIRE , ABO.NB_SOUSCRIT , (IFNULL (ABO.NO_ABONNEMENT THEN 0 ELSE 1)) AS NB , (CASE WHEN ABO.NO_ABONNEMENT IS NULL THEN NULL WHEN EXISTS (SELECT * FROM GESXXSUS LEFT OUTER JOIN GESXXTPA PREMIER_NO_SUS ON (GESXXSUS.CODE_REVUE, GESXXSUS.PREMIER_NO) = (PREMIER_NO_SUS.CODE_REVUE, PREMIER_NO_SUS.CODE_PARUTION) LEFT OUTER JOIN GESXXTPA DERNIER_NO_SUS ON (GESXXSUS.CODE_REVUE, GESXXSUS.PREMIER_NO) = (DERNIER_NO_SUS.CODE_REVUE, DERNIER_NO_SUS.CODE_PARUTION) WHERE (GESXXSUS.NO_ABONNEMENT, GESXXSUS.NO_REABO) = (ABO.NO_ABONNEMENT, ABO.NO_REABO) AND ((LENGTH (GESXXSUS.DERNIER_NO) = 0 AND PREMIER_NO_SUS.NO_PARUTION <= PARUTION.NO_PARUTION) OR (PREMIER_NO_SUS.NO_PARUTION <= PARUTION.NO_PARUTION AND DERNIER_NO_SUS.NO_PARUTION >= PARUTION.NO_PARUTION)) ) THEN 'S' ELSE 'E' END ) AS ETAT_ABO , (CASE WHEN EXISTS (SELECT * FROM GESXXABO REABO WHERE REABO.NO_ABONNEMENT = ABO.NO_ABONNEMENT AND REABO.NO_REABO > ABO.NO_REABO) THEN 'O' ELSE 'N' END ) AS REABONNE FROM GESXXTPA PARUTION LEFT OUTER JOIN GESXXABO ABO ON (ABO.CODE_REVUE, ABO.DERNIER_NO) = (PARUTION.CODE_REVUE, PARUTION.CODE_PARUTION) AND ABO.TYPE_ABO IN (:TYPE_ABO1, :TYPE_ABO2, :TYPE_ABO3) WHERE PARUTION.CODE_REVUE = :CODE_REVUE AND PARUTION.NO_PARUTION >= :NO_PARUTION_DEB AND PARUTION.NO_PARUTION <= :NO_PARUTION_FIN ) DECOUPAGE ) CUMUL GROUP BY CUMUL.CODE_PARUTION, CUMUL.DATE_PARUTION ORDER BY CUMUL.DATE_PARUTION ------ End Original SQL Select KO in 2.16 and OK in 2.11 ------ Modify SQL Select OK in 2.16 and OK in 2.11 (Only one line change near the end, see comment) ------ I have verify the result on multiple database, it's ok SELECT CUMUL.CODE_PARUTION , CUMUL.DATE_PARUTION , SUM(CUMUL.NB_ABO_ACTIF) AS NB_ABO_ACTIF , SUM(CUMUL.NB_EXEMPLAIRE_ACTIF) AS NB_EXEMPLAIRE_ACTIF , SUM(CUMUL.NB_SOUSCRIT_ACTIF) AS NB_SOUSCRIT_ACTIF , SUM(CUMUL.NB_ABO_SUS) AS NB_ABO_SUS , SUM(CUMUL.NB_EXEMPLAIRE_SUS) AS NB_EXEMPLAIRE_SUS , SUM(CUMUL.NB_SOUSCRIT_SUS) AS NB_SOUSCRIT_SUS FROM ( SELECT DECOUPAGE.CODE_PARUTION , DECOUPAGE.DATE_PARUTION , (CASE WHEN DECOUPAGE.ETAT_ABO = 'E' AND DECOUPAGE.REABONNE = 'N' THEN DECOUPAGE.NB ELSE 0 END) AS NB_ABO_ACTIF , (CASE WHEN DECOUPAGE.ETAT_ABO = 'E' AND DECOUPAGE.REABONNE = 'N' THEN DECOUPAGE.NB_EXEMPLAIRE ELSE 0 END) AS NB_EXEMPLAIRE_ACTIF , (CASE WHEN DECOUPAGE.ETAT_ABO = 'E' AND DECOUPAGE.REABONNE = 'N' THEN DECOUPAGE.NB_SOUSCRIT ELSE 0 END) AS NB_SOUSCRIT_ACTIF , (CASE WHEN DECOUPAGE.ETAT_ABO = 'S' AND DECOUPAGE.REABONNE = 'N' THEN DECOUPAGE.NB ELSE 0 END) AS NB_ABO_SUS , (CASE WHEN DECOUPAGE.ETAT_ABO = 'S' AND DECOUPAGE.REABONNE = 'N' THEN DECOUPAGE.NB_EXEMPLAIRE ELSE 0 END) AS NB_EXEMPLAIRE_SUS , (CASE WHEN DECOUPAGE.ETAT_ABO = 'S' AND DECOUPAGE.REABONNE = 'N' THEN DECOUPAGE.NB_SOUSCRIT ELSE 0 END) AS NB_SOUSCRIT_SUS FROM ( SELECT PARUTION.CODE_PARUTION , PARUTION.DATE_PARUTION , ABO.NB_EXEMPLAIRE , ABO.NB_SOUSCRIT , (IFNULL (ABO.NO_ABONNEMENT THEN 0 ELSE 1)) AS NB , (CASE WHEN ABO.NO_ABONNEMENT IS NULL THEN NULL WHEN EXISTS (SELECT * FROM GESXXSUS LEFT OUTER JOIN GESXXTPA PREMIER_NO_SUS ON (GESXXSUS.CODE_REVUE, GESXXSUS.PREMIER_NO) = (PREMIER_NO_SUS.CODE_REVUE, PREMIER_NO_SUS.CODE_PARUTION) LEFT OUTER JOIN GESXXTPA DERNIER_NO_SUS ON (GESXXSUS.CODE_REVUE, GESXXSUS.PREMIER_NO) = (DERNIER_NO_SUS.CODE_REVUE, DERNIER_NO_SUS.CODE_PARUTION) WHERE (GESXXSUS.NO_ABONNEMENT, GESXXSUS.NO_REABO) = (ABO.NO_ABONNEMENT, ABO.NO_REABO) AND ((LENGTH (GESXXSUS.DERNIER_NO) = 0 AND PREMIER_NO_SUS.NO_PARUTION <= PARUTION.NO_PARUTION) OR (PREMIER_NO_SUS.NO_PARUTION <= PARUTION.NO_PARUTION AND DERNIER_NO_SUS.NO_PARUTION >= PARUTION.NO_PARUTION)) ) THEN 'S' ELSE 'E' END ) AS ETAT_ABO , (CASE WHEN EXISTS (SELECT * FROM GESXXABO REABO WHERE REABO.NO_ABONNEMENT = ABO.NO_ABONNEMENT AND REABO.NO_REABO > ABO.NO_REABO) THEN 'O' ELSE 'N' END ) AS REABONNE FROM GESXXTPA PARUTION LEFT OUTER JOIN GESXXABO ABO ON (ABO.CODE_REVUE, ABO.DERNIER_NO) = (PARUTION.CODE_REVUE, PARUTION.CODE_PARUTION) WHERE PARUTION.CODE_REVUE = :CODE_REVUE AND PARUTION.NO_PARUTION >= :NO_PARUTION_DEB AND PARUTION.NO_PARUTION <= :NO_PARUTION_FIN AND ABO.TYPE_ABO IN (:TYPE_ABO1, :TYPE_ABO2, :TYPE_ABO3) <== This line is move from the LEFT OUTER JOIN, This is the only change ) DECOUPAGE ) CUMUL GROUP BY CUMUL.CODE_PARUTION, CUMUL.DATE_PARUTION ORDER BY CUMUL.DATE_PARUTION ------ End Original SQL Select KO in 2.16 and OK in 2.11