PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 Re : Site PostgreSQL.fr » Condition cas when sur plusieur champs qui ne marche pas. » 08/11/2022 20:41:36

Bonjour Exactement merci j'ai modifié le code afin de ne plus retourner 0

#2 Site PostgreSQL.fr » Condition cas when sur plusieur champs qui ne marche pas. » 07/11/2022 20:17:15

Charle
Réponses : 2

Bonjour,

Je voudrais mettre une condition qui met une valeur dans un champs.
Je m'explique
Ma requette sort plusieur colonne:

"créditpotspe_inscmod"=0
creditpot_inscour =0
creditpot_inscour= 24
"créditpot_inscmod" =0
"CréditsModule"  =0

Je voudrais valorisé dans une colonne finale (ici creditpot_final) avec une condition Case When la valeur de l'un des champs précédent selon qu'ils soient nulle ou pas.

 Test du bbcode FluxBB


ici il devrait  afficher  24 dans creditpot_final.


Quelqu'un pourrais m'aider

Voici la condition que j'ai faites:

                WHEN validite."PRE_POST"::text = 'MIM_MANAGEMENT_COURSES'::text then

                    
                case
                when  validite."créditpotspe_inscmod" is not null  THEN validite."créditpotspe_inscmod"
            WHEN  validite."créditpotspe_inscmod" is null then validite.creditpot_inscour
            when  validite.creditpotspe_inscour is null then validite.creditpot_inscour
            when  validite.creditpot_inscour is null then validite."créditpot_inscmod"
            when validite."créditpot_inscmod" is null then validite."CréditsModule"
                   
                    end
        END AS creditpot_final



Mais cela ne marche pas.  dans creditpot_final j'ai 0

Voici mon code:


WITH cours AS (
         SELECT inscription_cours.apprenant_id,
            lip.ligne_parente_id,
            sum(inscription_cours.nombre_credits_potentiels) AS creditpot_inscour,
            --COALESCE(sum("Crédits potentiels.Inscription au cours"), 0::numeric) AS creditpot_inscour,
            COALESCE(sum(inscription_cours.credits_potentiels_specifiques), 0::numeric) AS creditpotspe_inscour,
            --COALESCE(sum("Crédits potentiels spécifiques.Inscription au cours"), 0::numeric) AS creditpotspe_inscour,
            sum(
                CASE
                    WHEN inscription_cours.est_validee_jury AND inscription_cours.est_verrouillee THEN inscription_cours.nombre_credits_obtenus_jury
                    ELSE 0::numeric
                END) AS credits_obtenus
           FROM t_inscriptions_cours inscription_cours
             JOIN t_statuts_inscription statut_inscription ON statut_inscription.objet_id = inscription_cours.statut_inscription_id
             JOIN t_cours cours_1 ON cours_1.objet_id = inscription_cours.cours_id
             JOIN t_arborescences_scolarite ligne_elementaire_programme ON ligne_elementaire_programme.cours_id = cours_1.objet_id
             JOIN t_arborescences_scolarite lip ON lip.objet_id = ligne_elementaire_programme.ligne_parente_id AND lip.arborescence_programme_id = 2401812
             LEFT JOIN t_types_apprenant type_apprenant ON type_apprenant.objet_id = inscription_cours.type_apprenant_id
          WHERE (statut_inscription.code::text <> ALL (ARRAY['INVISIBLE'::character varying::text, 'INSCRIT_AU_TITRE_DE'::character varying::text])) AND (type_apprenant.code IS NULL OR type_apprenant.code::text <> 'AUDITEUR'::text)
          GROUP BY inscription_cours.apprenant_id, lip.ligne_parente_id
        ), app AS (
         SELECT ae_app.attribut_valfloat,
            inscription_app.apprenant_id
           FROM t_inscriptions_programme inscription_app
             JOIN t_groupes groupe_app ON groupe_app.objet_id = inscription_app.groupe_id AND groupe_app.code::text ~~ '____MIM_APPRENTI__'::text AND groupe_app.type_groupe_id = 12618784
             JOIN t_donnees_float ae_app ON ae_app.objet_id = groupe_app.objet_id AND ae_app.attribut_id = 6580993
        ), modules_hors_mgt AS (
         SELECT inscription_module.apprenant_id,
            sum(
                CASE
                    WHEN app.attribut_valfloat IS NOT NULL THEN inscription_module.nombre_credits_potentiels
                    WHEN module.code::text = 'MIM_OUTGOING'::text AND inscription_module.nombre_credits_obtenus_jury > 0::numeric THEN inscription_module.nombre_credits_obtenus_jury
                    WHEN module.code::text = ANY ('{MIM_CFX,MIM_ADV,MIM_OUTGOING,MIM_OPTION}'::text[]) THEN inscription_module.nombre_credits_potentiels
                    ELSE 0::numeric
                END) AS credits_potentiels
           FROM t_inscriptions_module inscription_module
             JOIN t_individus apprenant_1 ON apprenant_1.objet_id = inscription_module.apprenant_id
             JOIN t_modules module ON module.objet_id = inscription_module.module_id
             LEFT JOIN app ON app.apprenant_id = apprenant_1.objet_id
          WHERE module.code::text = ANY ('{MIM_CFX,MIM_ADV,MIM_OUTGOING,MIM_OPTION,MIM_SMN_APP_METIER,MIM_SMN_APP_DYNAMIQUE_PERSO,MIM_SMN_APP_DIAGNOSTIC,MIM_SMN_APP_CLOTURE}'::text[])
          GROUP BY inscription_module.apprenant_id
        ), module_mim_management AS (
         SELECT inscription_module.objet_id AS id_interne_aurion,
            module.code AS "Code.Module",
            apprenant.ind_particule AS "NUMELV.Apprenant",
            inscription_module.objet_id AS "id.Inscription au module",
            inscription_module.nombre_credits_potentiels AS "créditpot_inscmod",
            inscription_module.credits_potentiels_specifiques AS "créditpotspe_inscmod",
            apprenant.objet_id AS "id.Apprenant",
            apprenant.ind_nom AS "Nom d'usage.Apprenant",
            --COALESCE(sum("Crédits potentiels spécifiques.Inscription au cours"), 0::numeric) AS creditpotspe_inscour,
            --COALESCE(sum("Crédits potentiels.Inscription au cours"), 0::numeric) AS creditpot_inscour,
            module.nombre_credits AS "CréditsModule"
           FROM ( SELECT o.objet_id,
                    o.apprenant_id,
                    o.module_id,
                    o.nombre_credits_potentiels,
                    o.taux_credits_obtenus,
                    o.est_validee,
                    o.est_verrouillee,
                    o.nombre_credits_obtenus,
                    o.classement,
                    o.moyenne,
                    o.note_alpha,
                    o.date_inscription,
                    o.nombre_points,
                    o.avec_note_eliminatoire,
                    o.note_ects,
                    o.moyenne_sans_rattrapage,
                    o.avec_rattrapage,
                    o.taux_remise,
                    o.statut_inscription_id,
                    o.validation_scola_id,
                    o.type_apprenant_id,
                    o.type_convention_id,
                    o.date_entree,
                    o.date_sortie,
                    o.absences_excusees,
                    o.heures_absences_excusees,
                    o.absences_non_excusees,
                    o.heures_absences_non_excusees,
                    o.moyenne_avant_absences,
                    o.non_valide_par_absence,
                    o.est_validee_jury,
                    o.moyenne_jury,
                    o.moyenne_alpha_jury,
                    o.classement_jury,
                    o.note_ects_jury,
                    o.nombre_credits_obtenus_jury,
                    o.calcul_scolarite_id,
                    o.choix_inscription_id,
                    o.est_non_noter,
                    o.entite_id,
                    o.gpa,
                    o.validee_par_compensation,
                    o.credits_potentiels_specifiques,
                    o.score,
                    o.gpa_jury,
                    o.echeancier_type_id,
                    o.numero_cve,
                    o.pas_de_cve,
                    o.exonere_de_cve,
                    o.motif_exoneration,
                    o.etat_cve_id,
                    o.lot_inscriptions_id
                   FROM t_inscriptions_module o
                  WHERE true) inscription_module
             LEFT JOIN t_modules module ON module.objet_id = inscription_module.module_id
             LEFT JOIN t_individus apprenant ON apprenant.objet_id = inscription_module.apprenant_id
          WHERE true AND module.code::text = 'MIM_ELC'::text
        ), credits AS (
         SELECT pp.pre_post AS "PRE_POST",
            apprenant.objet_id AS apprenant_id,
            apprenant.ind_particule AS numelv,
            apprenant.ind_nom,
            mode_admission.code AS mode_admission_code,
            inscr_mim_elc.objet_id AS inscr_mim_elc_id,
               -- CASE
                   -- WHEN mode_admission.code::text = 'VISITANT'::text THEN COALESCE(cours.creditpot_inscour, 0::numeric)
                  --  WHEN pp.pre_post::text = 'PRE2015_MIM'::text THEN GREATEST(100::numeric - modules_hors_mgt.credits_potentiels, 0::numeric)
                  --  WHEN pp.pre_post::text = 'POST2015_MIM'::text THEN GREATEST(90::numeric - modules_hors_mgt.credits_potentiels, 0::numeric)
                   -- WHEN pp.pre_post::text = 'REF2020_MIM'::text THEN GREATEST(94::numeric - modules_hors_mgt.credits_potentiels, 0::numeric)
                   -- WHEN pp.pre_post::text = 'POST2020_MIM'::text THEN GREATEST(94::numeric - modules_hors_mgt.credits_potentiels, 0::numeric)
                   -- WHEN pp.pre_post::text = 'MIM_MANAGEMENT_COURSES'::text and module_mim_management."créditpotspe_inscmod" is not null  THEN module_mim_management."créditpotspe_inscmod"
                    --WHEN pp.pre_post::text = 'MIM_MANAGEMENT_COURSES'::text and module_mim_management."créditpotspe_inscmod" is null then cours.creditpotspe_inscour
                    --when pp.pre_post::text = 'MIM_MANAGEMENT_COURSES'::text and cours.creditpotspe_inscour is null then cours.creditpot_inscour
                    --when pp.pre_post::text = 'MIM_MANAGEMENT_COURSES'::text and cours.creditpot_inscour is null then module_mim_management."créditpot_inscmod"
                    --when pp.pre_post::text = 'MIM_MANAGEMENT_COURSES'::text and module_mim_management."créditpot_inscmod" is null then module_mim_management."CréditsModule"
                    --WHEN pp.pre_post::text = 'MIM_MANAGEMENT_COURSES'::text THEN module_mim_management."créditpotspe_inscmod"
                   -- ELSE 0::numeric
                --END AS credits_potentiels,
            COALESCE(cours.credits_obtenus, 0::numeric) AS credits_obtenus,
            coalesce(cours.creditpot_inscour,0::numeric) as creditpot_inscour,
            coalesce(creditpotspe_inscour,0::numeric) as creditpotspe_inscour,
              COALESCE(module_mim_management."créditpotspe_inscmod",0::numeric) as "créditpotspe_inscmod",
              COALESCE(module_mim_management."créditpot_inscmod",0::numeric) as "créditpot_inscmod",
            COALESCE(module_mim_management."CréditsModule",0::numeric) as  "CréditsModule"
              
           FROM t_individus apprenant
             JOIN t_inscriptions_programme inscription_diplome ON inscription_diplome.apprenant_id = apprenant.objet_id
             JOIN t_statuts_inscription statut_diplome ON statut_diplome.objet_id = inscription_diplome.statut_inscription_id AND (statut_diplome.code::text <> ALL (ARRAY['DECEDE'::character varying::text, 'DEMISSION'::character varying::text, 'EXCLUS'::character varying::text, 'DIPLOME'::character varying::text, 'NON_DIPLOME'::character varying::text]))
             JOIN t_groupes diplome ON diplome.objet_id = inscription_diplome.groupe_id AND diplome.code::text = 'MIM'::text
             JOIN t_relations dma ON dma.source_id = inscription_diplome.objet_id AND dma.relation_nom::text = 'inscription_programme-moded_admission.client§1531414'::text
             JOIN t_objets mode_admission ON mode_admission.objet_id = dma.dest_id AND mode_admission.type::text = 'moded_admission.client'::text AND NOT mode_admission.efface
             JOIN t_inscriptions_module inscr_mim_elc ON inscr_mim_elc.apprenant_id = apprenant.objet_id
             JOIN t_modules mim_elc ON mim_elc.objet_id = inscr_mim_elc.module_id AND mim_elc.code::text = 'MIM_ELC'::text
             JOIN ( SELECT am.apprenant_id,
                    module.code AS pre_post,
                    module.objet_id AS pre_post_id
                   FROM t_apprenants_modules am
                     JOIN t_modules module ON module.objet_id = am.module_id
                  WHERE module.code::text = ANY (ARRAY['PRE2015_MIM'::character varying::text, 'POST2015_MIM'::character varying::text, 'REF2020_MIM'::character varying::text, 'MIM_MANAGEMENT_COURSES'::text, 'POST2020_MIM'::character varying::text])) pp ON pp.apprenant_id = apprenant.objet_id
             JOIN t_arborescences_scolarite ligne_intermediaire_programme ON ligne_intermediaire_programme.module_id = mim_elc.objet_id AND ligne_intermediaire_programme.arborescence_programme_id = 2401812
             JOIN t_arborescences_scolarite ligne_intermediaire_programme__2 ON ligne_intermediaire_programme__2.objet_id = ligne_intermediaire_programme.ligne_parente_id AND ligne_intermediaire_programme__2.module_id = pp.pre_post_id
             LEFT JOIN cours ON cours.apprenant_id = apprenant.objet_id AND cours.ligne_parente_id = ligne_intermediaire_programme.objet_id
             LEFT JOIN modules_hors_mgt ON modules_hors_mgt.apprenant_id = apprenant.objet_id
             LEFT JOIN module_mim_management ON module_mim_management."id.Apprenant" = apprenant.objet_id
        ), validite AS (
         SELECT credits."PRE_POST",
            credits.apprenant_id,
            credits.numelv,
            credits.ind_nom,
            credits.mode_admission_code,
            credits.inscr_mim_elc_id,
           -- credits.credits_potentiels,
            credits.credits_obtenus,
                CASE
                    WHEN credits.mode_admission_code::text = 'VISITANT'::text AND credits.credits_obtenus > 0::numeric THEN true
                  --  ELSE COALESCE(credits.credits_obtenus, 0::numeric) >= COALESCE(credits.credits_potentiels, 0::numeric)
                END AS valide,
               
                credits.creditpot_inscour,
                credits.creditpotspe_inscour,
                credits."créditpotspe_inscmod",
                credits."créditpot_inscmod",
                credits."CréditsModule"
               
           FROM credits
        )
SELECT validite."PRE_POST",
    validite.apprenant_id,
    validite.numelv,
    validite.ind_nom,
    validite.mode_admission_code,
    validite.inscr_mim_elc_id,
   -- validite.credits_potentiels,
    validite.credits_obtenus,
    validite.valide,
   
    validite.creditpot_inscour,
    validite.creditpotspe_inscour,
    validite."créditpotspe_inscmod",
    validite."créditpot_inscmod",
    validite."CréditsModule",
   
        CASE
            WHEN validite.valide THEN 'true'::text
            ELSE 'false'::text
        END AS validation,
        CASE
            WHEN validite.valide THEN '10'::text
            ELSE '0'::text
        END AS note_numerique,
        CASE
            WHEN validite.valide THEN 'V'::text
            ELSE 'NV'::text
        END AS note_alpha,
       
        case
       
                    WHEN validite."PRE_POST"::text = 'MIM_MANAGEMENT_COURSES'::text then

                    
                case
                when  validite."créditpotspe_inscmod" is not null  THEN validite."créditpotspe_inscmod"
            WHEN  validite."créditpotspe_inscmod" is null then validite.creditpot_inscour
            when  validite.creditpotspe_inscour is null then validite.creditpot_inscour
            when  validite.creditpot_inscour is null then validite."créditpot_inscmod"
            when validite."créditpot_inscmod" is null then validite."CréditsModule"
                   
                    end
        END AS creditpot_final
       
       
       
   FROM validite
  WHERE validite.numelv::text = '203670'::text;



Merci bien

#3 Re : Site PostgreSQL.fr » ERROR: invalid input syntax for type numeric: " " » 24/03/2022 09:42:44

Bonjour rjuju,
Merci pour ta reponse en effet  pg ne donne pas la ligne sur laquelle l'erreur se trouve.
J'ai juste dans la console:

ERROR: invalide impute syntaxe for type numeric: " "
*********Error**********

ERROR: invalide impute syntaxe for type numeric: " "
SQL state: 22P02


Pourriez vous m'aider?

#4 Site PostgreSQL.fr » ERROR: invalid input syntax for type numeric: " " » 24/03/2022 01:03:37

Charle
Réponses : 7

Bonjour,
J'ai cettte erreur : ERROR:  invalid input syntax for type numeric: " "
Quand j'execute cette requette.


WITH inscription_diplome AS (
         SELECT inscription_diplome_1.apprenant_id,
            inscription_diplome_1.objet_id AS inscription_diplome_id,
            groupe_diplome_1.programme_id
           FROM t_inscriptions_programme inscription_diplome_1
             JOIN t_groupes groupe_diplome_1 ON groupe_diplome_1.objet_id = inscription_diplome_1.groupe_id AND groupe_diplome_1.type_groupe_id = 1544676
        ), inscription_annee_entree AS (
         SELECT inscription_annee_entree_1.apprenant_id,
            inscription_annee_entree_1.objet_id AS inscription_annee_entree_id,
            groupe_diplome_1.programme_id
           FROM t_inscriptions_programme inscription_annee_entree_1
             JOIN t_groupes groupe_diplome_1 ON groupe_diplome_1.objet_id = inscription_annee_entree_1.groupe_id AND groupe_diplome_1.type_groupe_id = 1544678
        ), inscription_promo AS (
         SELECT inscription_promo_1.apprenant_id,
            inscription_promo_1.objet_id AS inscription_promo_id,
            groupe_diplome_1.programme_id
           FROM t_inscriptions_programme inscription_promo_1
             JOIN t_groupes groupe_diplome_1 ON groupe_diplome_1.objet_id = inscription_promo_1.groupe_id AND groupe_diplome_1.type_groupe_id = 1544677
        ), inscription_session AS (
         SELECT inscription_session_1.apprenant_id,
            inscription_session_1.objet_id AS inscription_session_id,
            groupe_session.programme_id,
            to_number("substring"("substring"(groupe_session.code::text, '_(.*)'::text), '(.*?)_'::text), '9999'::text) AS annee_entree,
            session_concours.source_id AS concours_id,
            campus_session.objet_id AS campus_session_id
           FROM t_inscriptions_programme inscription_session_1
             JOIN t_groupes groupe_session ON groupe_session.objet_id = inscription_session_1.groupe_id AND groupe_session.type_groupe_id = 4737139
             JOIN t_relations session_concours ON session_concours.dest_id = groupe_session.objet_id AND session_concours.relation_nom::text = 'concours-groupe§4802331'::text
             LEFT JOIN t_entites campus_session ON campus_session.objet_id = groupe_session.entite_id
        )
SELECT DISTINCT apprenant.objet_id AS apprenant_id,
    cours.code AS concours_code,
    upper(apprenant.ind_nom::text) AS ind_nom,
    upper(apprenant.ind_nom_conjoint::text) AS ind_nom_conjoint,
    initcap(apprenant.ind_prenom::text) AS ind_prenom,
    initcap(apprenant.ind_autres_prenoms::text) AS ind_autres_prenoms,
    concours.objet_id AS concours_id,
    programme.objet_id AS programme_id,
    programme.code AS programme_code,
    modeleescp_client.code AS modele_code,
    groupe_diplome.objet_id AS groupe_diplome_id,
    ecole_partenaire.objet_id AS ecole_partenaire_id,
    ecolepartenaire_client.libelle AS ecole_partenaire_libelle,
    campus_concours.objet_id AS campus_concours_id,
    campus_entree.objet_id AS campus_entree_id,
    inscription_session.campus_session_id,
    moded_admission_client.objet_id AS mode_admission_id,
    moded_admission_client.code AS mode_admission_code,
        CASE
            WHEN programme.code::text = 'LABEX'::text THEN d1.attribut_valfloat::integer + 1
            WHEN programme.code::text = 'MMK'::text THEN inscription_session.annee_entree::integer + 1
            WHEN programme.code::text = 'MIM'::text AND COALESCE(ecole_partenaire.objet_id, 0) = 2178486 THEN d1.attribut_valfloat::integer
            WHEN moded_admission_client.code::text = 'BACHELOR_2'::text THEN d1.attribut_valfloat::integer
            ELSE d1.attribut_valfloat::integer
        END AS annee_entree,
        CASE
            WHEN programme.code::text = 'EMBA'::text AND (moded_admission_client.code::text <> ALL (ARRAY['EMBASI'::character varying::text, 'GMPSI'::character varying::text])) THEN '01-01-'::text
            WHEN programme.code::text = ANY (ARRAY['MMK'::character varying::text, 'LABEX'::character varying::text]) THEN '01-01-'::text
            ELSE '01-09-'::text
        END ||
        CASE
            WHEN programme.code::text = 'MMK'::text THEN inscription_session.annee_entree::integer + 1
            WHEN programme.code::text = 'MIM'::text AND ecole_partenaire.objet_id = 2178486 THEN d1.attribut_valfloat::integer
            ELSE d1.attribut_valfloat::integer
        END AS date_entree,
        CASE
            WHEN programme.code::text = 'MIM'::text AND COALESCE(ecole_partenaire.objet_id, 0) = 2178486 THEN d1.attribut_valfloat::integer + 2
            WHEN programme.code::text = 'MIM'::text AND COALESCE(ecole_partenaire.objet_id, 0) <> 2178486 THEN d1.attribut_valfloat::integer + 2
            WHEN programme.code::text = 'MMK'::text THEN inscription_session.annee_entree::integer + 2
            WHEN programme.code::text = 'BC'::text THEN d1.attribut_valfloat::integer + 2
            WHEN programme.code::text = 'IFF'::text THEN d1.attribut_valfloat::integer + 2
            WHEN programme.code::text = 'IWM'::text THEN d1.attribut_valfloat::integer + 2
            WHEN programme.code::text = 'MC'::text THEN d1.attribut_valfloat::integer + 2
            WHEN programme.code::text = 'MM'::text THEN d1.attribut_valfloat::integer + 2
            WHEN programme.code::text = 'RH'::text THEN d1.attribut_valfloat::integer + 2
            WHEN programme.code::text = 'MEM'::text THEN d1.attribut_valfloat::integer + 2
            WHEN programme.code::text = 'LABEX'::text THEN d1.attribut_valfloat::integer + 2
            WHEN programme.code::text = 'MIS'::text THEN d1.attribut_valfloat::integer + 2
            WHEN programme.code::text = 'MUS'::text THEN d1.attribut_valfloat::integer + 2
            WHEN programme.code::text = 'MEI'::text THEN d1.attribut_valfloat::integer + 2
            WHEN programme.code::text = 'MBS'::text THEN d1.attribut_valfloat::integer + 2
            WHEN programme.code::text = 'MIS'::text THEN d1.attribut_valfloat::integer + 2
            WHEN programme.code::text = 'MIS'::text THEN d1.attribut_valfloat::integer + 2
            WHEN programme.code::text = 'MDT'::text THEN d1.attribut_valfloat::integer + 2
            WHEN programme.code::text = 'EMIB'::text THEN d1.attribut_valfloat::integer + 3
            WHEN programme.code::text = 'BACHELOR'::text AND moded_admission_client.code::text = 'BACHELOR'::text THEN d1.attribut_valfloat::integer + 3
            WHEN programme.code::text = 'BACHELOR'::text AND moded_admission_client.code::text = 'BACHELOR_2'::text THEN d1.attribut_valfloat::integer + 2
            WHEN programme.code::text = 'DOCT'::text THEN d1.attribut_valfloat::integer + 3
            WHEN programme.code::text = 'MBAM'::text AND moded_admission_client.code::text = 'CP'::text THEN d1.attribut_valfloat::integer
            ELSE d1.attribut_valfloat::integer + 1
        END AS promo,
    inscription_diplome.inscription_diplome_id,
    inscription_annee_entree.inscription_annee_entree_id,
    inscription_promo.inscription_promo_id
   FROM t_individus apprenant
     JOIN t_inscriptions_concours inscription_concours ON inscription_concours.apprenant_id = apprenant.objet_id
     JOIN t_statuts_inscription statut_inscription ON statut_inscription.objet_id = inscription_concours.statut_inscription_id
     JOIN t_concours concours ON concours.objet_id = inscription_concours.concours_id AND NOT concours.obsolete
     JOIN t_cours cours ON cours.objet_id = concours.cours_id AND NOT cours.obsolete
     LEFT JOIN inscription_session ON inscription_session.apprenant_id = apprenant.objet_id AND inscription_session.concours_id = concours.objet_id
     LEFT JOIN t_relations r1 ON r1.source_id = concours.objet_id AND r1.relation_nom::text = 'concours-programme§1344524'::text
     JOIN t_programmes programme ON programme.objet_id = COALESCE(r1.dest_id, inscription_session.programme_id)
     JOIN t_relations r7 ON r7.source_id = programme.objet_id AND r7.relation_nom::text = 'programme-modeleescp.client§45161'::text
     JOIN t_objets modeleescp_client ON modeleescp_client.objet_id = r7.dest_id AND modeleescp_client.type::text = 'modeleescp.client'::text
     JOIN t_groupes groupe_diplome ON groupe_diplome.programme_id = programme.objet_id AND groupe_diplome.type_groupe_id = 1544676
     LEFT JOIN t_relations r2 ON r2.source_id = apprenant.objet_id AND r2.relation_nom::text = 'individu-ecolepartenaire.client§1738915'::text
     LEFT JOIN t_objets ecolepartenaire_client ON ecolepartenaire_client.objet_id = r2.dest_id AND ecolepartenaire_client.type::text = 'ecolepartenaire.client'::text
     LEFT JOIN t_relations r3 ON r3.source_id = ecolepartenaire_client.objet_id AND r3.relation_nom::text = 'ecolepartenaire.client-entite§5385671'::text
     LEFT JOIN t_entites ecole_partenaire ON ecole_partenaire.objet_id = r3.dest_id
     LEFT JOIN t_entites campus_concours ON campus_concours.objet_id = cours.entite_id
     LEFT JOIN t_relations r4 ON r4.source_id = inscription_concours.objet_id AND r4.relation_nom::text = 'inscription_concours-campus_langue.client§2091006'::text
     LEFT JOIN t_objets campus_langue_client ON campus_langue_client.objet_id = r4.dest_id AND campus_langue_client.type::text = 'campus_langue.client'::text
     LEFT JOIN t_relations r5 ON r5.source_id = campus_langue_client.objet_id AND r5.relation_nom::text = 'campus_langue.client-entite§5413758'::text
     LEFT JOIN t_entites campus_entree ON campus_entree.objet_id = r5.dest_id
     LEFT JOIN t_relations r6 ON r6.source_id = concours.objet_id AND r6.relation_nom::text = 'concours-moded_admission.client§1739862'::text
     LEFT JOIN t_objets moded_admission_client ON moded_admission_client.objet_id = r6.dest_id AND moded_admission_client.type::text = 'moded_admission.client'::text
     LEFT JOIN t_donnees_float d1 ON d1.objet_id = concours.objet_id AND d1.attribut_id = 10738461
     LEFT JOIN inscription_diplome ON inscription_diplome.apprenant_id = apprenant.objet_id AND inscription_diplome.programme_id = programme.objet_id
     LEFT JOIN inscription_annee_entree ON inscription_annee_entree.apprenant_id = apprenant.objet_id AND inscription_annee_entree.programme_id = programme.objet_id
     LEFT JOIN inscription_promo ON inscription_promo.apprenant_id = apprenant.objet_id AND inscription_promo.programme_id = programme.objet_id
  WHERE apprenant.est_apprenant AND (apprenant.objet_id <> ALL (ARRAY[93693, 2486988, 4797296])) AND (statut_inscription.code::text = ANY (ARRAY['CONFIRME'::character varying::text, 'CAN_ADMIS_CONDITION_CONFIRME'::character varying::text])) AND (inscription_diplome.inscription_diplome_id IS NULL OR inscription_annee_entree.inscription_annee_entree_id IS NULL OR inscription_promo.inscription_promo_id IS NULL);

Pourriez vous m'aider?
Cordialement.

#5 Re : PL/pgSQL » unterminated quoted identifier at or near ""Code postal " » 02/02/2022 18:08:01

Merci beaucoup julien pour les indication.
Je viens de trouver l'origine du probléme grace à tes explication.

#6 PL/pgSQL » unterminated quoted identifier at or near ""Code postal " » 25/01/2022 07:42:00

Charle
Réponses : 2

Bonjour,
J'ai cette requette que je n'arrive pas à faire marcher sous postgres.

J'ai cette erreur, unterminated quoted identifier at or near ""Code postal"

Pourriez vous m'aider?

/******** ID FAVORI 40393610 ********/
with q1 as (
-- Payeur - ADRESSE FACTURATION (R.7)
select
  apprenant.objet_id as id_interne_aurion,
  D1.attribut_valstr AS "Nom Prénom Payeur",
  adresse.rue_1 AS "Rue (ligne 1).Adresse",
  adresse.rue_2 AS "Rue (ligne 2).Adresse",
  adresse.rue_3 AS "Rue (ligne 3).Adresse",
  D2.attribut_valstr AS "Code Postal.Adresse FACTU",
  D3.attribut_valstr AS "Ville.Adresse FACTU",
  D4.valeur AS "Pays.Adresse FACTU",
  D5.attribut_valstr AS "Téléphone Payeur",
  D6.attribut_valstr AS "Email Payeur"
from (select o.* from auriga.t_individus o where true and o.est_apprenant and not o.obsolete) apprenant
left join auriga.t_individus_adresses R1 on R1.individu_id = apprenant.objet_id
left join auriga.t_adresses adresse on adresse.objet_id = R1.adresse_id
left join auriga.t_relations R2 on R2.source_id = R1.objet_id and R2.relation_nom = 'individu-adresse-type_adresse'
left join auriga.t_types_adresse type_adresse on type_adresse.objet_id = R2.dest_id
left join auriga.t_pays pays on pays.objet_id = adresse.pays_id
left join auriga.t_donnees_str D1 on (D1.objet_id, D1.attribut_id) = (adresse.objet_id, 18652349)
left join auriga.t_donnees_str D2 on (D2.objet_id, D2.attribut_id) = (adresse.objet_id, 4431307)
left join auriga.t_donnees_str D3 on (D3.objet_id, D3.attribut_id) = (adresse.objet_id, 47145)
left join auriga.t_multilangues D4 on (D4.objet_id, D4.attribut_id, D4.langue_id) = (pays.objet_id, 351, 44323)
left join auriga.t_donnees_str D5 on (D5.objet_id, D5.attribut_id) = (adresse.objet_id, 18652344)
left join auriga.t_donnees_str D6 on (D6.objet_id, D6.attribut_id) = (adresse.objet_id, 18652348)
where (true
and (type_adresse.code = 'ADR_FACTU')
)
)
, q2 as (
-- Groupe de Facturation (R.10)
select
  apprenant.objet_id as id_interne_aurion,
  groupe.code AS "FACTURATION",
  D1.valeur AS "Libellé Facturation"
from (select o.* from auriga.t_individus o where true and o.est_apprenant and exists (select 1 from q1 where id_interne_aurion = o.objet_id) and not o.obsolete) apprenant
left join auriga.t_apprenants_groupes R1 on R1.apprenant_id = apprenant.objet_id
left join auriga.t_groupes groupe on groupe.objet_id = R1.groupe_id
left join auriga.t_types_groupe type_groupe on type_groupe.objet_id = groupe.type_groupe_id
left join auriga.t_multilangues D1 on (D1.objet_id, D1.attribut_id, D1.langue_id) = (groupe.objet_id, 661, 44323)
where (true
and (true)
and (type_groupe.code = 'FACTURATION')
)
)
, q3 as (
-- DOSSIER FINANCIER (R.8)
select
  apprenant.objet_id as id_interne_aurion,
  D1.valeur AS "Libellé.Choix mode de paiement",
  type_evenement_22.objet_id AS "id.Dossier financier d'inscription",
  D2.attribut_valdate::date AS "Date Dossier Complet.Dossier financier d'inscription",
  D3.attribut_valdate::date AS "Date Dossier Incomplet.Dossier financier d'inscription",
  oui_non_client.code AS "Code.Dossier complet"
from (select o.* from auriga.t_individus o where true and o.est_apprenant and exists (select 1 from q2 where id_interne_aurion = o.objet_id) and not o.obsolete) apprenant
left join auriga.t_apprenants_evenements R1 on R1.apprenant_id = apprenant.objet_id
left join auriga.t_evenements evenement on evenement.objet_id = R1.evenement_id
left join auriga.t_relations R2 on R2.source_id = evenement.objet_id and R2.relation_nom = 'evenement-type_evenement_22'
left join auriga.t_objets type_evenement_22 on type_evenement_22.objet_id = R2.dest_id and type_evenement_22.type = 'type_evenement_22' and not type_evenement_22.efface
left join auriga.t_relations R3 on R3.source_id = type_evenement_22.objet_id and R3.relation_nom = 'type_evenement_22-mode_reglement§18637223'
left join auriga.t_modes_reglement mode_reglement on mode_reglement.objet_id = R3.dest_id
left join auriga.t_relations R4 on R4.source_id = type_evenement_22.objet_id and R4.relation_nom = 'type_evenement_22-oui_non.client§17924950'
left join auriga.t_objets oui_non_client on oui_non_client.objet_id = R4.dest_id and oui_non_client.type = 'oui_non.client' and not oui_non_client.efface
left join auriga.t_multilangues D1 on (D1.objet_id, D1.attribut_id, D1.langue_id) = (mode_reglement.objet_id, 3411, 44323)
left join auriga.t_donnees_date D2 on (D2.objet_id, D2.attribut_id) = (type_evenement_22.objet_id, 19050328)
left join auriga.t_donnees_date D3 on (D3.objet_id, D3.attribut_id) = (type_evenement_22.objet_id, 35741504)
where (true
and type_evenement_22.objet_id is not null
)
)
, q4 as (
-- Groupe DIPLOME (R.2)
select
  apprenant.objet_id as id_interne_aurion,
  programme.code AS "Code.Programme",
  D1.valeur AS "Libellé.Programme"
from (select o.* from auriga.t_individus o where true and o.est_apprenant and exists (select 1 from q3 where id_interne_aurion = o.objet_id) and not o.obsolete) apprenant
left join auriga.t_inscriptions_programme inscription_programme on inscription_programme.apprenant_id = apprenant.objet_id
left join auriga.t_groupes groupe on groupe.objet_id = inscription_programme.groupe_id
left join auriga.t_types_groupe type_groupe on type_groupe.objet_id = groupe.type_groupe_id
left join auriga.t_programmes programme on programme.objet_id = groupe.programme_id
left join auriga.t_multilangues D1 on (D1.objet_id, D1.attribut_id, D1.langue_id) = (programme.objet_id, 4141, 44323)
where (true
and (type_groupe.code = 'DIPLOME')
)
)
, q5 as (
-- (R.1)
select
  apprenant.objet_id as id_interne_aurion,
  apprenant.objet_id AS "id.Apprenant",
  D1.valeur AS "Libellé.Titre",
  apprenant.ind_nom AS "Nom",
  apprenant.ind_prenom AS "Prénom",
  apprenant.ind_date_naissance AS "Date naissance",
  D2.attribut_valstr AS "Ville de naissance.Individu",
  ville.nom AS "Nom.Ville française",
  D3.attribut_valstr AS "Code postal ville de naissance.Individu",
  D4.valeur AS "Pays de naissance",
  D5.valeur AS "Libellé.Nationalité",
  D6.valeur AS "Libellé.Etudiant Payeur"
from (select o.* from auriga.t_individus o where true and o.est_apprenant and exists (select 1 from q4 where id_interne_aurion = o.objet_id) and not o.obsolete) apprenant
left join auriga.t_titres titre on titre.objet_id = apprenant.titre_id
left join auriga.t_villes ville on ville.objet_id = apprenant.ville_id
left join auriga.t_relations R1 on R1.source_id = apprenant.objet_id and R1.relation_nom = 'individu-pays§45031'
left join auriga.t_pays pays on pays.objet_id = R1.dest_id
left join auriga.t_individus_nationalites R2 on R2.individu_id = apprenant.objet_id
left join auriga.t_nationalites nationalite on nationalite.objet_id = R2.nationalite_id
left join auriga.t_relations R3 on R3.source_id = apprenant.objet_id and R3.relation_nom = 'individu-oui_non.client§18637807'
left join auriga.t_objets oui_non_client on oui_non_client.objet_id = R3.dest_id and oui_non_client.type = 'oui_non.client' and not oui_non_client.efface
left join auriga.t_multilangues D1 on (D1.objet_id, D1.attribut_id, D1.langue_id) = (titre.objet_id, 311, 44323)
left join auriga.t_donnees_str D2 on (D2.objet_id, D2.attribut_id) = (apprenant.objet_id, 45030)
left join auriga.t_donnees_str D3 on (D3.objet_id, D3.attribut_id) = (apprenant.objet_id, 48199)
left join auriga.t_multilangues D4 on (D4.objet_id, D4.attribut_id, D4.langue_id) = (pays.objet_id, 351, 44323)
left join auriga.t_multilangues D5 on (D5.objet_id, D5.attribut_id, D5.langue_id) = (nationalite.objet_id, 801, 44323)
left join auriga.t_multilangues D6 on (D6.objet_id, D6.attribut_id, D6.langue_id) = (oui_non_client.objet_id, 899741, 44323)
where (true
and (exists (select 1 from (with q1 as (
-- (R.1)
select
  apprenant.objet_id as id_interne_aurion,
  apprenant.objet_id AS "id.Apprenant",
  apprenant.ind_particule AS "NUMELV.Apprenant",
  apprenant.ind_nom AS "Nom d'usage.Apprenant",
  apprenant.ind_prenom AS "Prénom.Apprenant",
  groupe.code AS "Code.Groupe",
  programme.code AS "Programme",
  type_apprenant.code AS "Code.Type d'apprenant",
  type_convention.code AS "Code.Type de convention"
from (select o.* from auriga.t_individus o where true and o.est_apprenant and not o.obsolete) apprenant
left join auriga.t_inscriptions_programme inscription_programme on inscription_programme.apprenant_id = apprenant.objet_id
left join auriga.t_groupes groupe on groupe.objet_id = inscription_programme.groupe_id
left join auriga.t_types_groupe type_groupe on type_groupe.objet_id = groupe.type_groupe_id
left join auriga.t_programmes programme on programme.objet_id = groupe.programme_id
left join auriga.t_types_apprenant type_apprenant on type_apprenant.objet_id = inscription_programme.type_apprenant_id
left join auriga.t_types_convention type_convention on type_convention.objet_id = inscription_programme.type_convention_id
where (true
and (true)
and (type_groupe.code = 'FACTURATION')
)
)
, q2 as (
-- Mode admission (R.2)
select
  apprenant.objet_id as id_interne_aurion1,
  moded_admission_client.code AS "Code.Mode d'admission",
  programme.code AS "Programme",
  apprenant.objet_id AS "id.Apprenant",
  entite.code AS "Code.Campus de recrutement"
from (select o.* from auriga.t_individus o where true and o.est_apprenant and not o.obsolete) apprenant
left join auriga.t_inscriptions_programme inscription_programme on inscription_programme.apprenant_id = apprenant.objet_id
left join auriga.t_groupes groupe on groupe.objet_id = inscription_programme.groupe_id
left join auriga.t_types_groupe type_groupe on type_groupe.objet_id = groupe.type_groupe_id
left join auriga.t_relations R1 on R1.source_id = inscription_programme.objet_id and R1.relation_nom = 'inscription_programme-moded_admission.client§1531414'
left join auriga.t_objets moded_admission_client on moded_admission_client.objet_id = R1.dest_id and moded_admission_client.type = 'moded_admission.client' and not moded_admission_client.efface
left join auriga.t_programmes programme on programme.objet_id = groupe.programme_id
left join auriga.t_relations R2 on R2.source_id = inscription_programme.objet_id and R2.relation_nom = 'inscription_programme-entite§1531437'
left join auriga.t_entites entite on entite.objet_id = R2.dest_id
where (true
and (type_groupe.code = 'DIPLOME')
)
)
select
id_interne_aurion,
  q1."id.Apprenant",
  q1."NUMELV.Apprenant",
  q1."Nom d'usage.Apprenant",
  q1."Prénom.Apprenant",
  q1."Code.Groupe",
  q1."Programme",
  q1."Code.Type d'apprenant",
  q1."Code.Type de convention",
  q2."Code.Mode d'admission",
  q2."Code.Campus de recrutement"
from q1 natural join q2
where true /* and id_interne_aurion= any(('{' || $P{ObjectID_List} || '}')::integer[]) */
order by q1."Code.Groupe" asc, q1."Code.Type d'apprenant" asc, q1."Code.Type de convention" asc) r where r.id_interne_aurion = apprenant.objet_id))
)
)
, q6 as (
-- Apprenant UE (R.11)
select
  apprenant.objet_id as id_interne_aurion,
  D1.attribut_valbool AS "UE.Nationalité"
from (select o.* from auriga.t_individus o where true and o.est_apprenant and exists (select 1 from q5 where id_interne_aurion = o.objet_id) and not o.obsolete) apprenant
left join auriga.t_individus_nationalites R1 on R1.individu_id = apprenant.objet_id
left join auriga.t_nationalites nationalite on nationalite.objet_id = R1.nationalite_id
left join auriga.t_donnees_bool D1 on (D1.objet_id, D1.attribut_id) = (nationalite.objet_id, 2156292)
where (true
)
)
, q7 as (
-- Date de Validation RF (R.9)
select
  apprenant.objet_id as id_interne_aurion,
  D1.attribut_valdate::date AS "Date Validation RF par l'apprenant.Inscription au groupe"
from (select o.* from auriga.t_individus o where true and o.est_apprenant and exists (select 1 from q6 where id_interne_aurion = o.objet_id) and not o.obsolete) apprenant
left join auriga.t_inscriptions_programme inscription_programme on inscription_programme.apprenant_id = apprenant.objet_id
left join auriga.t_groupes groupe on groupe.objet_id = inscription_programme.groupe_id
left join auriga.t_types_groupe type_groupe on type_groupe.objet_id = groupe.type_groupe_id
left join auriga.t_donnees_date D1 on (D1.objet_id, D1.attribut_id) = (inscription_programme.objet_id, 43539386)
where (true
and (type_groupe.code = 'REGISTRATION_FILE')
)
)
, q8 as (
-- EMAIL_CONTACT (R.4)
select
  apprenant.objet_id as id_interne_aurion,
  coordonnee.coordonnee AS "Email ETUDIANT"
from (select o.* from auriga.t_individus o where true and o.est_apprenant and exists (select 1 from q6 where id_interne_aurion = o.objet_id) and not o.obsolete) apprenant
left join auriga.t_individus_coordonnees R1 on R1.individu_id = apprenant.objet_id
left join auriga.t_coordonnees coordonnee on coordonnee.objet_id = R1.coordonnee_id
left join auriga.t_types_coordonnee type_coordonnee on type_coordonnee.objet_id = R1.type_coordonnee_id
where (true
and (type_coordonnee.code = 'EMAIL_CONTACT')
)
)
, q9 as (
-- Adresse PERMANENT (R.3)
select
  apprenant.objet_id as id_interne_aurion,
  adresse.rue_1 AS "Rue (ligne 1).Adresse 2",
  adresse.rue_2 AS "Rue (ligne 2).Adresse 2",
  adresse.rue_3 AS "Rue (ligne 3).Adresse 2",
  D1.attribut_valstr AS "Ville.Adresse",
  D2.attribut_valstr AS "Code Postal.Adresse",
  ville.code_postal AS "Code postal.Ville française",
  ville.nom AS "Nom.Ville française 2",
  D3.valeur AS "Libellé.Pays",
  D4.attribut_valstr AS "Représentant Légal - Nom Prénom",
  D5.attribut_valstr AS "Représentant Légal - Email",
  D6.attribut_valstr AS "Représentant Légal - Téléphone",
  D7.valeur AS "Libellé.Représentant Légal Payeur"
from (select o.* from auriga.t_individus o where true and o.est_apprenant and exists (select 1 from q6 where id_interne_aurion = o.objet_id) and not o.obsolete) apprenant
left join auriga.t_individus_adresses R1 on R1.individu_id = apprenant.objet_id
left join auriga.t_adresses adresse on adresse.objet_id = R1.adresse_id
left join auriga.t_relations R2 on R2.source_id = R1.objet_id and R2.relation_nom = 'individu-adresse-type_adresse'
left join auriga.t_types_adresse type_adresse on type_adresse.objet_id = R2.dest_id
left join auriga.t_villes ville on ville.objet_id = adresse.ville_id
left join auriga.t_pays pays on pays.objet_id = adresse.pays_id
left join auriga.t_relations R3 on R3.source_id = apprenant.objet_id and R3.relation_nom = 'individu-oui_non.client§18637809'
left join auriga.t_objets oui_non_client on oui_non_client.objet_id = R3.dest_id and oui_non_client.type = 'oui_non.client' and not oui_non_client.efface
left join auriga.t_donnees_str D1 on (D1.objet_id, D1.attribut_id) = (adresse.objet_id, 47145)
left join auriga.t_donnees_str D2 on (D2.objet_id, D2.attribut_id) = (adresse.objet_id, 4431307)
left join auriga.t_multilangues D3 on (D3.objet_id, D3.attribut_id, D3.langue_id) = (pays.objet_id, 351, 44323)
left join auriga.t_donnees_str D4 on (D4.objet_id, D4.attribut_id) = (adresse.objet_id, 18652343)
left join auriga.t_donnees_str D5 on (D5.objet_id, D5.attribut_id) = (adresse.objet_id, 18652454)
left join auriga.t_donnees_str D6 on (D6.objet_id, D6.attribut_id) = (adresse.objet_id, 18652401)
left join auriga.t_multilangues D7 on (D7.objet_id, D7.attribut_id, D7.langue_id) = (oui_non_client.objet_id, 899741, 44323)
where (true
and (type_adresse.code = 'ADR_PERM')
)
)
, q10 as (
-- PORTABLE (R.6)
select
  apprenant.objet_id as id_interne_aurion,
  coordonnee.coordonnee AS "Tel PORTABLE"
from (select o.* from auriga.t_individus o where true and o.est_apprenant and exists (select 1 from q6 where id_interne_aurion = o.objet_id) and not o.obsolete) apprenant
left join auriga.t_individus_coordonnees R1 on R1.individu_id = apprenant.objet_id
left join auriga.t_coordonnees coordonnee on coordonnee.objet_id = R1.coordonnee_id
left join auriga.t_types_coordonnee type_coordonnee on type_coordonnee.objet_id = R1.type_coordonnee_id
where (true
and (type_coordonnee.code = 'TEL_SECONDAIRE')
)
)
, q11 as (
-- TELEPHONE (R.5)
select
  apprenant.objet_id as id_interne_aurion,
  coordonnee.coordonnee AS "Tel PRINCIPAL"
from (select o.* from auriga.t_individus o where true and o.est_apprenant and exists (select 1 from q6 where id_interne_aurion = o.objet_id) and not o.obsolete) apprenant
left join auriga.t_individus_coordonnees R1 on R1.individu_id = apprenant.objet_id
left join auriga.t_coordonnees coordonnee on coordonnee.objet_id = R1.coordonnee_id
left join auriga.t_types_coordonnee type_coordonnee on type_coordonnee.objet_id = R1.type_coordonnee_id
where (true
and (type_coordonnee.code = 'TEL_PRINCIPAL')
)
)
select
(array_agg(distinct id_interne_aurion))[1] as id_interne_aurion,
  q2."FACTURATION",
  q2."Libellé Facturation",
  q4."Code.Programme",
  q4."Libellé.Programme",
  ((case when (case when coalesce(cast(q6."UE.Nationalité" as text), '') <> '' then cast('UE' as text) else cast(q6."UE.Nationalité" as text) end) is null or (case when coalesce(cast(q6."UE.Nationalité" as text), '') <> '' then cast('UE' as text) else cast(q6."UE.Nationalité" as text) end)::text = '' then cast('HUE' as text) else (case when coalesce(cast(q6."UE.Nationalité" as text), '') <> '' then cast('UE' as text) else cast(q6."UE.Nationalité" as text) end) end)) as "UE / HUE",
  q5."Libellé.Titre",
  q5."Nom",
  q5."Prénom",
  q5."Date naissance",
  ((coalesce((coalesce((coalesce((coalesce((case when q5."Nom.Ville française" is null or q5."Nom.Ville française"::text = '' then q5."Ville de naissance.Individu" else q5."Nom.Ville française" end), '') || coalesce(cast(' ' as text), '')), '') || coalesce(cast('(' as text), '')), '') || coalesce((case when (substring((case when coalesce(q5."Nom.Ville française", '') <> '' then q5."Code postal ville de naissance.Individu" else q5."Nom.Ville française" end) from 1 for cast(cast(2 as numeric) as integer))) is null or (substring((case when coalesce(q5."Nom.Ville française", '') <> '' then q5."Code postal ville de naissance.Individu" else q5."Nom.Ville française" end) from 1 for cast(cast(2 as numeric) as integer)))::text = '' then cast('-' as text) else (substring((case when coalesce(q5."Nom.Ville française", '') <> '' then q5."Code postal ville de naissance.Individu" else q5."Nom.Ville française" end) from 1 for cast(cast(2 as numeric) as integer))) end), '')), '') || coalesce(cast(')' as text), ''))) as "Ville de naissance",
  q5."Pays de naissance",
  (array_to_string(array_agg(distinct(q5."Libellé.Nationalité") order by q5."Libellé.Nationalité"), ' / ')) as "Nationalités",
  ((coalesce((coalesce((coalesce((coalesce(q9."Rue (ligne 1).Adresse 2", '') || coalesce(cast(' ' as text), '')), '') || coalesce(q9."Rue (ligne 2).Adresse 2", '')), '') || coalesce(cast(' ' as text), '')), '') || coalesce(q9."Rue (ligne 3).Adresse 2", ''))) as "Adresse",
  ((case when q9."Code postal.Ville française" is null or q9."Code postal.Ville française"::text = '' then q9."Code Postal.Adresse" else q9."Code postal.Ville française" end)) as "Code postal Adresse",
  ((case when q9."Nom.Ville française 2" is null or q9."Nom.Ville française 2"::text = '' then q9."Ville.Adresse" else q9."Nom.Ville française 2" end)) as "Ville Adresse",
  (upper(q9."Libellé.Pays")) as "Pays Adresse",
  q8."Email ETUDIANT",
  q11."Tel PRINCIPAL",
  q10."Tel PORTABLE",
  q9."Représentant Légal - Nom Prénom",
  q9."Représentant Légal - Email",
  q9."Représentant Légal - Téléphone",
  ((case when (case when (case when coalesce((substring(q5."Libellé.Etudiant Payeur" from cast('yes|Oui' as text))), '') <> '' then cast('Etudiant' as text) else (substring(q5."Libellé.Etudiant Payeur" from cast('yes|Oui' as text))) end) is null or (case when coalesce((substring(q5."Libellé.Etudiant Payeur" from cast('yes|Oui' as text))), '') <> '' then cast('Etudiant' as text) else (substring(q5."Libellé.Etudiant Payeur" from cast('yes|Oui' as text))) end)::text = '' then (case when coalesce((substring(q9."Libellé.Représentant Légal Payeur" from cast('yes|Oui' as text))), '') <> '' then cast('Responsable Légal' as text) else (substring(q9."Libellé.Représentant Légal Payeur" from cast('yes|Oui' as text))) end) else (case when coalesce((substring(q5."Libellé.Etudiant Payeur" from cast('yes|Oui' as text))), '') <> '' then cast('Etudiant' as text) else (substring(q5."Libellé.Etudiant Payeur" from cast('yes|Oui' as text))) end) end) is null or (case when (case when coalesce((substring(q5."Libellé.Etudiant Payeur" from cast('yes|Oui' as text))), '') <> '' then cast('Etudiant' as text) else (substring(q5."Libellé.Etudiant Payeur" from cast('yes|Oui' as text))) end) is null or (case when coalesce((substring(q5."Libellé.Etudiant Payeur" from cast('yes|Oui' as text))), '') <> '' then cast('Etudiant' as text) else (substring(q5."Libellé.Etudiant Payeur" from cast('yes|Oui' as text))) end)::text = '' then (case when coalesce((substring(q9."Libellé.Représentant Légal Payeur" from cast('yes|Oui' as text))), '') <> '' then cast('Responsable Légal' as text) else (substring(q9."Libellé.Représentant Légal Payeur" from cast('yes|Oui' as text))) end) else (case when coalesce((substring(q5."Libellé.Etudiant Payeur" from cast('yes|Oui' as text))), '') <> '' then cast('Etudiant' as text) else (substring(q5."Libellé.Etudiant Payeur" from cast('yes|Oui' as text))) end) end)::text = '' then cast('Tiers' as text) else (case when (case when coalesce((substring(q5."Libellé.Etudiant Payeur" from cast('yes|Oui' as text))), '') <> '' then cast('Etudiant' as text) else (substring(q5."Libellé.Etudiant Payeur" from cast('yes|Oui' as text))) end) is null or (case when coalesce((substring(q5."Libellé.Etudiant Payeur" from cast('yes|Oui' as text))), '') <> '' then cast('Etudiant' as text) else (substring(q5."Libellé.Etudiant Payeur" from cast('yes|Oui' as text))) end)::text = '' then (case when coalesce((substring(q9."Libellé.Représentant Légal Payeur" from cast('yes|Oui' as text))), '') <> '' then cast('Responsable Légal' as text) else (substring(q9."Libellé.Représentant Légal Payeur" from cast('yes|Oui' as text))) end) else (case when coalesce((substring(q5."Libellé.Etudiant Payeur" from cast('yes|Oui' as text))), '') <> '' then cast('Etudiant' as text) else (substring(q5."Libellé.Etudiant Payeur" from cast('yes|Oui' as text))) end) end) end)) as "Payeur",
  q1."Nom Prénom Payeur",
  ((coalesce((coalesce((coalesce((coalesce(q1."Rue (ligne 1).Adresse", '') || coalesce(cast(' ' as text), '')), '') || coalesce(q1."Rue (ligne 2).Adresse", '')), '') || coalesce(cast(' ' as text), '')), '') || coalesce(q1."Rue (ligne 3).Adresse", ''))) as "Adresse FACTU",
  q1."Code Postal.Adresse FACTU",
  q1."Ville.Adresse FACTU",
  q1."Pays.Adresse FACTU",
  q1."Téléphone Payeur",
  q1."Email Payeur",
  q3."Libellé.Choix mode de paiement",
  q7."Date Validation RF par l'apprenant.Inscription au groupe",
  q3."id.Dossier financier d'inscription",
  q5."id.Apprenant",
  q3."Date Dossier Complet.Dossier financier d'inscription",
  q3."Date Dossier Incomplet.Dossier financier d'inscription",
  q3."Code.Dossier complet"
from q1 join q2 using (id_interne_aurion) join q3 using (id_interne_aurion) join q4 using (id_interne_aurion) join q5 using (id_interne_aurion) join q6 using (id_interne_aurion) left join q7 using (id_interne_aurion) left join q8 using (id_interne_aurion) left join q9 using (id_interne_aurion) left join q10 using (id_interne_aurion) left join q11 using (id_interne_aurion)
where true /* and id_interne_aurion= any(('{' || $P{ObjectID_List} || '}')::integer[]) */
group by q2."FACTURATION", q2."Libellé Facturation", q4."Code.Programme", q4."Libellé.Programme", (case when (case when coalesce(cast(q6."UE.Nationalité" as text), '') <> '' then cast('UE' as text) else cast(q6."UE.Nationalité" as text) end) is null or (case when coalesce(cast(q6."UE.Nationalité" as text), '') <> '' then cast('UE' as text) else cast(q6."UE.Nationalité" as text) end)::text = '' then cast('HUE' as text) else (case when coalesce(cast(q6."UE.Nationalité" as text), '') <> '' then cast('UE' as text) else cast(q6."UE.Nationalité" as text) end) end), q5."Libellé.Titre", q5."Nom", q5."Prénom", q5."Date naissance", (coalesce((coalesce((coalesce((coalesce((case when q5."Nom.Ville française" is null or q5."Nom.Ville française"::text = '' then q5."Ville de naissance.Individu" else q5."Nom.Ville française" end), '') || coalesce(cast(' ' as text), '')), '') || coalesce(cast('(' as text), '')), '') || coalesce((case when (substring((case when coalesce(q5."Nom.Ville française", '') <> '' then q5."Code postal

Cordialement

Pied de page des forums

Propulsé par FluxBB