Bonjour à vous,
Voilà je dois imprimer à l'aide d'IReport un tableau synthétisant pour toute la promo leurs différentes notes ainsi que leurs notes Bullats et D'autres crédits.
Mon soucis est le suivant c'est que je peux récupérer certaines informations à l'aide d'une requête sql et les autres informations à partir d'une autre requête.
J'aurais aimer de l'aide afin de m'aider à concaténer les 2 requêtes pour qu'IReport l'accepte enfin.
Voici les 2 requêtes :
Requête 1:
with q1 as (
-- (R.1)
select
apprenant.objet_id as id_interne_aurion,
module.code AS "Période",
apprenant.ind_nom AS "Nom",
apprenant.ind_prenom AS "Prénom",
inscription_module.moyenne AS "Moyenne",
inscription_module.classement AS "Classement",
inscription_module.nombre_credits_potentiels AS "Crédits potentiels",
inscription_module.nombre_credits_obtenus AS "Crédits obtenus",
inscription_module.taux_credits_obtenus AS "Taux crédits obtenus/crédits potentiels"
from (select o.* from auriga.t_individus o where true and o.est_apprenant) apprenant
left join auriga.t_inscriptions_module inscription_module on inscription_module.apprenant_id = apprenant.objet_id
left join auriga.t_modules module on module.objet_id = inscription_module.module_id
where (true
and (module.code = 'S7')
)
)
, q2 as (
-- BULATS (R.4)
select
apprenant.objet_id as id_interne_aurion,
type_evenement.code AS "Code.Type d'événement",
D1.attribut_valfloat AS "SCORE.Attestation de niveau de langue"
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)) 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_types_evenement type_evenement on type_evenement.objet_id = evenement.type_evenement_id
left join auriga.t_relations R2 on R2.source_id = evenement.objet_id and R2.relation_nom = 'evenement-type_evenement_7'
left join auriga.t_objets type_evenement_7 on type_evenement_7.objet_id = R2.dest_id and type_evenement_7.type = 'type_evenement_7' and not (type_evenement_7.efface or type_evenement_7.obsolete)
left join auriga.t_donnees D1 on (D1.objet_id, D1.attribut_id) = (type_evenement_7.objet_id, 246292)
where (true
and (type_evenement.code = 'ATTEST_NIV_LANGUE')
)
)
, q3 as (
-- bonif SP (R.3)
select
apprenant.objet_id as id_interne_aurion,
cours.code AS "Cours Bonif SP",
inscription_cours.nombre_credits_obtenus AS "Crédits Bonif SP"
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)) apprenant
left join auriga.t_inscriptions_cours inscription_cours on inscription_cours.apprenant_id = apprenant.objet_id
left join auriga.t_cours cours on cours.objet_id = inscription_cours.cours_id
where (true
and (cours.code = '12_SP_BONIF_E1')
)
)
, q4 as (
-- bonif SA (R.2)
select
apprenant.objet_id as id_interne_aurion,
cours.code AS "Cours Bonif SA",
inscription_cours.nombre_credits_obtenus AS "Crédits bonif SA"
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)) apprenant
left join auriga.t_inscriptions_cours inscription_cours on inscription_cours.apprenant_id = apprenant.objet_id
left join auriga.t_cours cours on cours.objet_id = inscription_cours.cours_id
where (true
and (cours.code = '12_SA_BONIF_E1')
)
)
select
(array_agg(distinct id_interne_aurion))[1] as id_interne_aurion,
q1."Période",
q1."Nom",
q1."Prénom",
q1."Moyenne",
q1."Classement",
q1."Crédits potentiels",
q1."Crédits obtenus",
q1."Taux crédits obtenus/crédits potentiels",
q4."Cours Bonif SA",
q4."Crédits bonif SA",
q3."Cours Bonif SP",
q3."Crédits Bonif SP",
q2."Code.Type d'événement",
(max(q2."SCORE.Attestation de niveau de langue")) as "Meilleur score au Bulats"
from q1 full join q2 using (id_interne_aurion) full join q3 using (id_interne_aurion) full join q4 using (id_interne_aurion)
where true /* and id_interne_aurion= any(('{' || $P{ObjectID_List} || '}')::integer[]) */
and q1.id_interne_aurion is not null
group by q1."Période", q1."Nom", q1."Prénom", q1."Moyenne", q1."Classement", q1."Crédits potentiels", q1."Crédits obtenus", q1."Taux crédits obtenus/crédits potentiels", q4."Cours Bonif SA", q4."Crédits bonif SA", q3."Cours Bonif SP", q3."Crédits Bonif SP", q2."Code.Type d'événement"
order by q1."Classement" asc, q1."Moyenne" asc
Requête 2:
with cte_classements as (
select srs.line_id, srs.student_id, nullif(srs.classement_final, 0) as classement_final
from auriga.t_scola_result_entetes sre
join t_scola_result_students srs on (srs.calcul_id, srs.line_id) = (sre.calcul_id, sre.line_id)
where sre.calcul_id = ($P{Parametres}::hstore->'calcul_id')::integer
)
select bulletin.*, classement.classement_final as classement_racine
from bulletin(
('{' || $P{ApprenantIDs} || '}')::integer[],
($P{Parametres}::text ||
',"avec_arborescence"=>"no"
,"avec_epreuves"=>"yes"
,"avec_appreciations_groupe"=>"no"
,"avec_appreciations_modules"=>"no"
,"avec_appreciations_cours"=>"no"
,"avec_appreciations_notes"=>"no"
,"avec_traduction_lignes"=>"yes"')::hstore
-- Activer cette ligne et renseigner "${langue_id}" si on veut forcer l'utilisation d'une langue ayant l'id "id_langue"
-- || ('"langue_id"=>${langue_id}')::hstore
) bulletin
-- classement
left join cte_classements classement on classement.student_id = bulletin.apprenant_id
order by classement.classement_final, apprenant_nom, bulletin.apprenant_prenom, bulletin.destinataire_id, bulletin.adresse_id, bulletin.ligne_ordre;
Je n'arrive pas à trouver la solution, est-ce que quelqu'un pourrait m'aider où m'orienter pour que je puisse récupérer tous les champs dans IReport et finaliser mon édition ?
Merci beaucoup.
Partager