Soustraction d'un COUNT(*)

Petit nouveau ! | 1 Messages

16 avr. 2019, 13:32

Bonjour,

je voudrais savoir s'il était possible de soustraire un résultat de requête ?
J'ai deux tables :

La première table appelée "Chambre" contient des chambres (numérotés avec des lettres alphabétiques) avec leurs capacités et numéro de chambre :
Chambre / Numéro de chambre / Capacité
A / 100 / 3
B / 102 / 2
C / 104 / 4

La deuxième table appelée "Occupants" contient une liste des occupants associés aux numéros de chambre :
Patient / Numéro de chambre
1 / 102
2 / 102
3 / 102
4 / 104
4 / 104


Je souhaiterais obtenir le numéro des chambres non pleines.
Pour cela, je souhaiterais effectuer un "SELECT Count(*) FROM Occupants GROUP BY Numéro_de_Chambre et soustraire ce résultat de requête à chaque capacité.
J'ai essayé plusieurs choses mais je n'arrive pas a récupéré els résultats de cette requête pour la soustraire aux capacités de l'autre table...
Auriez vous une idée?

Merci beaucoup !

Mammouth du PHP | 560 Messages

16 avr. 2019, 14:44

bonjour,
suivant ton exemple la chambre 102 est sur-occupé est-ce normal?
Néamoins pour ressortir toutes les chambres non encore pleines:

Code : Tout sélectionner

SELECT numero, capacite, sr.nb_occupants from Chambre c LEFT JOIN (SELECT chambre_id, count(chambre_id) as nb_occupants FROM patient p GROUP BY chambre_id ) as sr ON c.numero=sr.chambre_id WHERE c.capacite > sr.nb_occupants or sr.nb_occupants is null
dans la table patient: on compte le nombre de patients par chambres (sr)