|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Développeur informatique Inscription : mai 2011 Messages : 27 ![]() |
Bonsoir ,
J'ai une requête dont je veux utiliser deux tables une table FicheEngin et une table FichePneu Je veux afficher, selon la référence du pneu , la date (à partir de FicheEngin) et l'opération réalisée ( à partir de FichePneu) sur ce pneu en cette date. Sachant que la référence du pneu dans la fiche engin est trouvée dans l'une des positions des pneus dans l'engin c-à-d , elle peut être soit en AG , AD , ARDE , ARDI .... J'ai abordé cette syntaxe qui ne fonctionne pas malheureusement : Code :
SELECT FE.Date , FP.ReferencePneu , FP.Operation FROM FicheEngin FE INNER JOIN FichePneu FP WHERE FP.ReferencePneu = FE.AG OR FE.AD OR FE.ARDE OR FE.ARDI OR FE.DEUXID OR FE.DEUXED OR FE.DEUXIG OR FE.DEUXEG OR FE.ARGE OR FE.ARGE ; ??? Solution ! Je travaille sous l'environnement C# ! Merci d'avance |
|
|
01
|
|
|
#2 |
|
Expert Confirmé
![]() dba Inscription : juillet 2007 Messages : 2 520 ![]() |
Révisez votre SQL : http://sqlpro.developpez.com/cours/sqlaz/jointures/
Un indice en bas de votre écran : join ... on ...
__________________
les règles du forum - mode d'emploi du forum Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur) JE NE RÉPONDS PAS aux questions techniques par message privé. Écrire en français sur un forum est une marque minimale de respect. |
|
|
00
|
|
|
#3 | ||||
![]() ![]() ![]() Nicolas SouquetAdministrateur de base de données Inscription : janvier 2005 Messages : 4 669 ![]() |
Bonjour,
En effet il aurait fallu écrire la jointure comme suit : Code :
En fait, c'est votre modèle de données qui est faux : pour le moment vous avez une table FicheEngin avec autant de colonnes que de possibilités de pneu par engin. Que se passera-t-il le jour ou un nouvel engin, sera acheté par votre entreprise, et qu'on doive effectuer une opération sur un pneu dont la position n'existe pas jusqu'ici ? Vous allez ajouter une colonne, et modifier tout le code de votre application pour prendre en compte cette nouvelle colonne. En revanche, si vous avez une table qui stocke toutes les positions de pneu possibles, et dans votre table fiche enfin, toutes les colonnes de position de pneu une seule qui référence la clé primaire de la table des positions de pneu, et une colonne pour la référence du pneu, votre requête devient alors : Code :
Comme votre table a donc moins de colonnes, les pages de cette table sont plus riches en information. Si vous voulez ajouter une nouvelle position, aucun problème : il suffit de l'ajouter dans la table de position des pneus ... et c'est tout ! @++
__________________
En bases de données relationnelles SQL, il n'y a ni tableaux, ni enregistrements, ni champs: il y a des tables, des lignes et des colonnes. Blog | Profil| Consulter ou télécharger les fichiers d'aide de SQL Server, des versions 2000 à 2012 |
||||
|
00
|
Copyright © 2000-2012 - www.developpez.com