Skip to content
Snippets Groups Projects
Commit a973c932 authored by Justine Ouellette's avatar Justine Ouellette
Browse files

queries done

parent b97ba411
No related branches found
No related tags found
No related merge requests found
......@@ -8,11 +8,11 @@ SELECT marque, modele, emplacement_nom FROM Vehicule;
SELECT marque, modele, emplacement_nom FROM Vehicule;
-- 3. Retournez les emplacements sans véhicules
SELECT emplacement.nom, count(vehicule.immatriculation)
SELECT e.nom, count(v.immatriculation)
FROM emplacement e
LEFT OUTER JOIN vehicule v ON e.nom = v.emplacement_nom
GROUP BY emplacement.nom
HAVING count(vehicule.immatriculation) = 0;
GROUP BY e.nom
HAVING count(v.immatriculation) = 0;
-- 4. Retournez tous les véhicules dont le domicile est situé dans la ville de Montréal
SELECT * FROM vehicule v
......@@ -20,37 +20,33 @@ LEFT JOIN emplacement e ON v.emplacement_nom = e.nom
WHERE e.adresse_postale_ville = 'Montréal';
-- 5. Retournez les emplacements et le nombre de voitures hybrides à chaque emplacement
SELECT emplacement.nom, count(vehicule.immatriculation)
SELECT e.nom, count(v.immatriculation)
FROM emplacement e
LEFT OUTER JOIN vehicule v ON e.nom = v.emplacement_nom
GROUP BY emplacement.nom
HAVING v.type = 'Hybride';
LEFT OUTER JOIN vehicule v ON e.nom = v.emplacement_nom AND v.type = 'Hybride'
GROUP BY e.nom;
-- 6. Retournez les plaques d’immatriculation des véhicules qui ont été utilisés (pas seulement réservés)
SELECT vehicule.immatriculation
SELECT v.immatriculation
FROM vehicule v
JOIN utilisation u ON v.immatriculation = u.immatriculation;
-- 7. Retournez toutes les informations des membres (personnes physiques) vivant dans une ville avec un emplacement qui a des voitures hybrides
SELECT * FROM membre m
LEFT JOIN emplacement e
LEFT OUTER JOIN vehicule v ON e.nom = v.emplacement_nom
WHERE v.type = 'Hybride'
ON m.adresse_postale_ville = e.adresse_postale_ville
SELECT m.* FROM (emplacement e
JOIN vehicule v ON e.nom = v.emplacement_nom AND v.type = 'Hybride')
JOIN membre m ON m.adresse_postale_ville = e.adresse_postale_ville
WHERE m.est_membre_physique = TRUE;
-- 8. Retournez toutes les informations des véhicules à l’emplacement Montréal qui sont libres le 23/01/2023 à 10 h
SELECT * FROM vehicule v
SELECT v.* FROM vehicule v
LEFT OUTER JOIN reservation r ON v.immatriculation = r.immatriculation
AND ('2023-01-23 10:00:00' BETWEEN r.temps_debut AND r.temps_fin)
WHERE v.emplacement_nom = 'Montréal'
AND r.temps_debut IS NULL;
WHERE '2023-01-23 10:00:00' NOT BETWEEN r.temps_debut AND r.temps_fin
AND v.emplacement_nom = 'Montréal';
-- 9. Retournez les plaques d’immatriculation et le nombre de réservations de chaque véhicule (y compris ceux sans réservation, c’est-à-dire que le nombre de réservations est 0)
SELECT vehicule.immatriculation, count(reservation.temps_debut)
SELECT v.immatriculation, count(r.temps_debut)
FROM vehicule v
LEFT OUTER JOIN resrevation r ON v.immatriculation = r.immatriculation
GROUP BY vehicule.immatriculation;
LEFT OUTER JOIN reservation r ON v.immatriculation = r.immatriculation
GROUP BY v.immatriculation;
-- 10. Quel est le véhicule avec la consommation de carburant la plus élevée ?
SELECT * FROM vehicule
......@@ -62,9 +58,10 @@ FROM vehicule
GROUP BY vehicule.type;
-- 12. Retournez tous les membres qui ont réservé un véhicule à un endroit autre que leur emplacement d’origine même si le type de véhicule existe à leur emplacement d’origine
SELECT * FROM membre m
RIGHT OUTER JOIN reservation r ON r.numero_membre = m.numero_membre
LEFT OUTER JOIN vehicule v ON r.immatriculation = v.immatriculation
WHERE v.emplacement_nom != m.emplacement_favoris_nom AND vehicule.immatriculation = v.immatriculation FROM vehicle
LEFT OUTER JOIN emplacement e ON m.emplacement_favoris_nom = e.nom
WHERE v.type = vehicle.type;
SELECT * FROM ((reservation r
JOIN vehicule v ON r.immatriculation = v.immatriculation)
JOIN membre m ON r.numero_membre = m.numero_membre)
JOIN emplacement e ON v.emplacement_nom = e.nom AND m.emplacement_favoris_nom != e.nom
WHERE EXISTS
(SELECT vehicule.type FROM vehicule
JOIN membre ON m.emplacement_favoris_nom = vehicule.emplacement_nom AND vehicule.type = v.type);
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment