requete access

requete access - SQL/NoSQL - Programmation

Marsh Posté le 24-08-2006 à 10:36:09    

Bonjour a tous voila  
je suis une débutante sur Access et l'on m'a demandé de faire un trie sur certaine donnée.  
Bref j'ai 2 tables:  
 
1 table véhicule avec des voitures  
1 table avec des bon de commande  
 
donc on ma demande d'effectué une requête de sélection des véhicules de +25000 kms  
jusque la pas de problème  
mais on me demande aussi s'ils sont sur un bon de commande ou non.  
Et voila le problème je n'arrive que a afficher les véhicule sur un bon commande et pas les véhicules de +25000 sans bon de commande.  
 
je pense qu'il s'agit d'un critère du type existe ou non...  
mais je ne c'est pas l'interprété dans ma requête de sélection...  
 
quelqu'un a t'il une idée...  
 
Merci  
 

Reply

Marsh Posté le 24-08-2006 à 10:36:09   

Reply

Marsh Posté le 24-08-2006 à 10:38:27    

il tefaut utiliser une requete du type
 
select *
from vehicules left join bons_de_commandes on vehicules.id = bons_de_commandes.vehicule_id (j invente tes noms de champs bien sur)

Message cité 1 fois
Message édité par betsamee le 24-08-2006 à 10:39:15
Reply

Marsh Posté le 24-08-2006 à 10:57:24    

betsamee a écrit :

il tefaut utiliser une requete du type
 
select *
from vehicules left join bons_de_commandes on vehicules.id = bons_de_commandes.vehicule_id (j invente tes noms de champs bien sur)


 
 
Non cela ne fonctionne pas en fait il faudrais specifier a la requete que id_commande peut etre ="a rien"  que apres la selection des vehicules de + 25000 on m'affiche quand même les bon commande dont le champs est vide...

Reply

Marsh Posté le 24-08-2006 à 11:00:46    

left outer join

Reply

Marsh Posté le 24-08-2006 à 11:06:42    

MagicBuzz a écrit :

left outer join


 
 
ca me di ca..
"expression de jointure non supportée"

Reply

Marsh Posté le 24-08-2006 à 11:07:48    

:heink:
 
tu peux poster ta requête ?

Reply

Marsh Posté le 24-08-2006 à 11:09:15    

MagicBuzz a écrit :

:heink:
 
tu peux poster ta requête ?


 
Non  
 
SELECT Marque.Marque, Modele.Modele, Vehicule.Immat, Type.Type, Vehicule.DateAchat, Organisme.Organisme, Vehicule.NumPret, Vehicule.DateFin, Vehicule.DateSortie, Vehicule.Chassis, Vehicule.KmActuel, Commande.IdCommande
FROM (Type INNER JOIN ((Marque INNER JOIN Modele ON Marque.IdMarque = Modele.IdMarque) INNER JOIN (Organisme RIGHT JOIN Vehicule ON Organisme.IdOrganisme = Vehicule.IdOrganisme) ON Modele.IdModele = Vehicule.IdModele) ON Type.IdType = Modele.IdType) INNER JOIN (Commande LEFT JOIN DetailCommande ON Commande.IdCommande = DetailCommande.IdCommande) ON Vehicule.IdVehicule = DetailCommande.IdVehicule
WHERE (((Type.Type)=[Type VP ou VU?]) AND ((Vehicule.DateFin) Between [Date de Debut?] And [Date de Fin?]) AND ((Vehicule.DateSortie) Is Null) AND ((Vehicule.KmActuel)>=25000))
ORDER BY Vehicule.KmActuel;

Reply

Marsh Posté le 24-08-2006 à 11:11:12    

slashcat a écrit :

Non  
 
SELECT Marque.Marque, Modele.Modele, Vehicule.Immat, Type.Type, Vehicule.DateAchat, Organisme.Organisme, Vehicule.NumPret, Vehicule.DateFin, Vehicule.DateSortie, Vehicule.Chassis, Vehicule.KmActuel, Commande.IdCommande
FROM (Type INNER JOIN ((Marque INNER JOIN Modele ON Marque.IdMarque = Modele.IdMarque) INNER JOIN (Organisme RIGHT JOIN Vehicule ON Organisme.IdOrganisme = Vehicule.IdOrganisme) ON Modele.IdModele = Vehicule.IdModele) ON Type.IdType = Modele.IdType) INNER JOIN (Commande LEFT JOIN DetailCommande ON Commande.IdCommande = DetailCommande.IdCommande) ON Vehicule.IdVehicule = DetailCommande.IdVehicule
WHERE (((Type.Type)=[Type VP ou VU?]) AND ((Vehicule.DateFin) Between [Date de Debut?] And [Date de Fin?]) AND ((Vehicule.DateSortie) Is Null) AND ((Vehicule.KmActuel)>=25000))
ORDER BY Vehicule.KmActuel;


 
Voila ma requete tout fonctionne bien cela m'affiche tout ce que ej veux sauf que je veut tous les vehicules +25000 même ceux qui ne son pas sur un bon commande!!!
et non il maffiche que les +25000 sur un bon commande!!!  

Reply

Marsh Posté le 24-08-2006 à 11:17:02    

justement le left join est la pour ca, il affichera meme les entrees de vehicules qui ne sont pas repertories dans bon_de_commandes
 
au lieu de la bouillie de requete que tu postes tu devrais faire;
 
select tes_champs
FROM from vehicules left join bons_de_commandes on vehicules.id = bons_de_commandes.vehicule_id
where kilometrage>=25000
 
(bien sur a adapter avec tes champs/tables)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed