Aide requéte SQL est-ce que c'est juste?

Fermé
etudiantepg Messages postés 12 Date d'inscription mercredi 20 novembre 2013 Statut Membre Dernière intervention 5 janvier 2014 - 27 déc. 2013 à 18:25
heliconius Messages postés 539 Date d'inscription mardi 1 juillet 2008 Statut Membre Dernière intervention 23 juin 2023 - 6 janv. 2014 à 00:17
Voila je voudrai une requéte pour calculer le montant des reservations réalisés en une journée donnée ( in put date ), les tables sont :

ma table Voiture

matricule | marque | modele | tarif_r | etat
----------------+-----------+----------+--------------+---------
4568 | Peugeot | 206 | 500 | reserver
6758 | Renault | clio4 | 56 | libre


et ma table Reservation

matricule | id_client | date_reservation | nbr_j_reservation
----------------+-----------+-----------------------+----------------------
4568 | Sara | 20-06-2013 | 5
6758 | Anais | 13-10-2013 | 17

et ma requéte :

SELECT tarif_r from Voiture INNER JOIN Reservation ON (Voiture.matric = Reservation.matric) WHERE date_reservation='"+date+"'";

est ce que c'est juste?????

4 réponses

Utilisateur anonyme
27 déc. 2013 à 18:33
Bonjour

Ça a l'air correct, à un détail près. Il peut y avoir plusieurs réservations le même jour, il faudrait donc faire SELECT SUM(tarif_r )...
1
rafikcne Messages postés 7 Date d'inscription mercredi 11 décembre 2013 Statut Membre Dernière intervention 27 décembre 2013
27 déc. 2013 à 18:32
select SUM(Voi.tarif_r) from RESERVATION Res, VOITURE Voi
where Voi.matricule = Res.matricule and Res.Date_Reservation = Ta_Date and Voi.etat = "reserver"
0
etudiantepg Messages postés 12 Date d'inscription mercredi 20 novembre 2013 Statut Membre Dernière intervention 5 janvier 2014
31 déc. 2013 à 21:54
merciii beaucoup rafik :)
0
heliconius Messages postés 539 Date d'inscription mardi 1 juillet 2008 Statut Membre Dernière intervention 23 juin 2023 139
6 janv. 2014 à 00:17
Bonsoir,

tout à fait, mais je rajouterai quelque chose qui n'a rien à voir avec la requête.

Je serais toi, au lieu de remplir ton champ Voiture.etat avec le texte reserver ou libre, je créerais une table EtatsVoiture avec différentes valeurs de champ (réservé, libre, réparation, location LD, etc...)

Si un véhicule est en réparation, tu fais comment ?
- Puisqu'il n'est pas réservé, il est donc libre ! => non: réparation
- Puisqu'il n'est pas libre, il est donc réservé par quelqu'un ! => non: réparation

De plus, ça évite les erreurs de saisie qui pourraient donner des résultats erronés :
- ... where Voiture.etat = 'reserver';
- ... where Voiture.etat = 'reservé';
- ... where Voiture.etat = 'reservée';
- ... where Voiture.etat = 'réserver';

un ... where Voiture.etat=1; est plus fiable !
0