Aide requéte SQL est-ce que c'est juste?
etudiantepg
Messages postés
15
Statut
Membre
-
heliconius Messages postés 584 Statut Membre -
heliconius Messages postés 584 Statut Membre -
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?????
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?????
A voir également:
- Aide requéte SQL est-ce que c'est juste?
- Logiciel sql - Télécharger - Bases de données
- Requête sql pour afficher uniquement les fleurs dont le prix est strictement inférieur à 10 euros ✓ - Forum DS
- Jointure sql ✓ - Forum MySQL
- Sql lister les tables ✓ - Forum Programmation
- Sql (+) - Forum Programmation
4 réponses
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 )...
Ç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 )...
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"
where Voi.matricule = Res.matricule and Res.Date_Reservation = Ta_Date and Voi.etat = "reserver"
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 !
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 !