|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre éprouvé
![]() Inscription : avril 2008 Messages : 554 ![]() |
Bonsoir à tous!
Débutant depuis peu dans l'utilisation des requêtes SQL dans Windev, je galère depuis 2 heures sur la méthode pour récupérer plusieurs informations dans plusieurs tables en une seule fois. Malheuresement j'ai les doublons dans la table malgré l'essai avec des INNER JOIN Code :
Pouvez vous m'aiguiller ? Merci d'avance |
||
|
|
00
|
|
|
#2 | ||
|
Membre émérite
![]() Olivier DehorterIngenieur de recherche - Ecologue Inscription : juin 2003 Messages : 697 ![]() |
bonjour
utilisez "distinct" apres le select Code :
Code :
WHERE Numero_police STARTING WHITH '1' |
||
|
|
00
|
|
|
#3 | |
![]() ![]() |
Citation:
Et dans le cas présent, j'ai plutôt l'impression que les %x représentent des paramètres donnés par le programme Windev qui lance la requête.
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework... « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau) À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française ! Linuxiens, comptez-vous ! |
|
|
00
|
|
|
#4 |
|
Membre émérite
![]() Olivier DehorterIngenieur de recherche - Ecologue Inscription : juin 2003 Messages : 697 ![]() |
sans la faute d'orthographe, c'est du SQL vers ?? a+ olivier |
|
|
00
|
|
|
#5 |
![]() ![]() |
Pas compris !
Si j'en crois la liste des mots réservés du langage SQL publiée par SQLPro, "STARTING" n'en fait pas partie. Et je n'ai jamais vu encore cette instruction qui existe donc peut-être spécifiquement dans un SGBD mais n'est probablement du SQL normalisé. Ou alors il s'agit de "START WITH" qui figure dans le livre de SQLPro et qui concerne l'auto-incrémentation ?
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework... « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau) À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française ! Linuxiens, comptez-vous ! |
|
00
|
|
|
#6 |
|
Nouveau Membre du Club
![]() Inscription : octobre 2005 Messages : 18 ![]() |
Bonjour, il faudrait donner les clés primaires de vos tables. A mon avis la requête ne va pas être très performante, si il y a peu de données ça ira sinon...
|
|
|
00
|
|
|
#7 |
|
Membre émérite
![]() Olivier DehorterIngenieur de recherche - Ecologue Inscription : juin 2003 Messages : 697 ![]() |
pour cinephil
tu as raison est une fonction specifique de FIREBIRD |
|
|
00
|
|
|
#8 | ||
|
Membre éprouvé
![]() Inscription : avril 2008 Messages : 554 ![]() |
Bonsoir à tous!
Désolé pour le retard dû à un souci de famille Enfin, @Olivier J'avais également tester avec SELECT DISTINCT sans aucun résultat! @cinephil : Oui, en fait la requête est écrite dans une chaine et les champs sur lequels les recherches doivent s'effectuer ne sont pas accessible dans la chaine, d'ou les paramètre %1 %2... Si vous voulez ce serait par exemple : Code :
Pour les clés : si primaire signifie unique (excusez mon ignorance en sql) Contrat.IDContrat - Id unique Client .NumClient - Id unique Avenant.IDAvenant - Id unique Avenant_ObjetDuRisqueAuto.IDObjetDuRisqueAuto - Id unique Voila mais j'ai quand même remarqué une chose : Il suffit que je renseigne une seule condition des champs pour qu'il n'y ait pas de doublons. Lorsque je ne renseigne aucun champ (je souhaite ramener tous les contrats) et c'est là que j'ai des doublons.... Par avance je vous remercie pour le temps que vous prenez |
||
|
|
00
|
|
|
#9 | ||
|
Membre éprouvé
![]() Inscription : avril 2008 Messages : 554 ![]() |
![]() ![]() ![]() Salut et Merci les gars! Je viens tout juste d'y arriver (pfoui le sql) Comment faire pour exposer clairement et transposer en requête le problème? J'ai vu sur le forum comment Cinephil ou SQLPro traduisent du français en code si simplement! Y apas une méthode pour savoir quand faire des SELECT dans SELECT ? Bref voici le code obtenu qui marche enfin mais après 3 heure de galère et de tatonnement Y a t-il une amélioration possible ? Code :
|
||
|
|
00
|
|
|
#10 | ||||||
![]() ![]() |
Code :
Tu compares la colonne IDContrat à un ensemble de colonnes ! Normalement, tu devrais avoir une belle erreur de syntaxe. Code :
WHERE IDContrat IN (SELECT IDContrat... Code :
INNER JOIN Client ON (Client.NumClient=Contrat.NumClient) Code :
Il me semble, si je comprends bien la requête, que celle-ci est équivalente, en supposant que %1 était tout simplement un WHERE : Code :
Au passage, j'ai utilisé des alias, c'est plus facile à lire ensuite. Et il serait bon d'indiquer de quelles tables viennent toutes les colonnes utilisées dans le WHERE. Je trouve d'ailleurs étonnant qu'il y ait à la fois Raison_sociale et NomPrenom !
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework... « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau) À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française ! Linuxiens, comptez-vous ! |
||||||
|
00
|
|
|
#11 | ||||||||||||||
|
Membre éprouvé
![]() Inscription : avril 2008 Messages : 554 ![]() |
Citation:
Citation:
Citation:
Code :
Citation:
Noté pour les alias, je dois m'y entrainer Par contre : Votre requête Req 1 me sort des contrats en doublons contrairement à la mienne Req 2 mal foutue ![]() Req 1 Req 2 Et Merci encore pour pour votre patience |
||||||||||||||
|
|
00
|
|
|
#12 |
|
Membre éprouvé
![]() Inscription : avril 2008 Messages : 554 ![]() |
Bonjour,
Je passe en résolu! Merci pour l'aide |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com