Bonjour,
J'en suis toujours à faire de petits essais, avec une base de données MySQL.
J'ai notamment une table `immeuble` et une table `logement` qui lui est rattachée.
Dans la table `logement`, un champ NOMBRE_PIECE.
Je désire obtenir le résultat suivant :
1000 A 0 4 6 6 0
etc..
soit le numéro de l'immeuble, son extension, puis compter le nombre de logements par nombre de pièces, de une à cinq pièces.
Après lecture et quelques recherches, j'ai écrit la requête suivante :
Elle fonctionne parfaitement.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 SELECT imm.NUMERO_DOSSIER , imm.LETTRE_DOSSIER , COUNT(CASE NOMBRE_PIECE WHEN 1 THEN NOMBRE_PIECE END) as 1p , COUNT(CASE NOMBRE_PIECE WHEN 2 THEN NOMBRE_PIECE END) as 2p , COUNT(CASE NOMBRE_PIECE WHEN 3 THEN NOMBRE_PIECE END) as 3p , COUNT(CASE NOMBRE_PIECE WHEN 4 THEN NOMBRE_PIECE END) as 4p , COUNT(CASE NOMBRE_PIECE WHEN 5 THEN NOMBRE_PIECE END) as 5p FROM immeuble as imm JOIN logement as log ON imm.ID = log.IMMEUBLE_ID_FK GROUP BY imm.NUMERO_DOSSIER , imm.LETTRE_DOSSIER;
Ce que je désire savoir, c'est si ma syntaxe est correcte, bien normalisée, éventuellement s'il est possible d'obtenir le même résultat différemment, quels en seraient les avantages, etc.
Merci.
Partager