Bonsoir
Pour du décisionnel dans de l’hôtellerie, j'ai une vue au format suivant
Celle ci affiche le statut (Statut: réservation, occupation, abandon...) d'une personne (Passager) dans un logement (TypeLogement: T1, T2, T3...) dans une résidence (Residence). L'information peut provenir de 2 applications métier différentes (Source: 'AGLAE' ou 'Heberg'). Bien évidement, chaque source peut fournir un statut différent. Le but est de retourner dans une requête un enregistrement par ligne qui résume les 2 statuts possibles.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 CREATE TABLE `v_statut_passager` ( `Id` MEDIUMINT(8) UNSIGNED NOT NULL DEFAULT '0', `Passager` MEDIUMINT(8) UNSIGNED NULL DEFAULT '0', `TypeLogement` TINYINT(3) UNSIGNED NULL DEFAULT NULL, `Residence` TINYINT(3) UNSIGNED NULL DEFAULT NULL, `Source` TINYINT(3) UNSIGNED NULL DEFAULT NULL, `Statut` TINYINT(3) UNSIGNED NULL DEFAULT NULL [.....] ) ENGINE=MyISAM;
Donc lorsque je fais une requête du genre :
Je me retrouve avec deux tuples qui représentent la même personne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 select passager.ine, passager.nom, passager.prenom, logement.libelle, case vue.source when "1" then statut.Libelle end as aglae, case vue.source when "2" then statut.Libelle end as heberg from v_statut_passager as vue join t_passager as passager on passager.Id = vue.Passager join t_typelogement as logement on logement.id = vue.TypeLogement join t_statut as statut on statut.id = vue.Statut join t_source as source on source.id = vue.source where vue.Residence = 43 #group by passager.Id order by passager.Nom, passager.Prenom
L'idée serait de récupérer un truc comme ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 nom prenom libelle aglae heberg DUPONT Bob T1 Occupation NULL DUPONT Bob T1 NULL Réservation
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 nom prenom libelle aglae heberg DUPONT Bob T1 Occupation Réservation
Partager