|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Nouveau Membre du Club
![]() Inscription : août 2009 Messages : 103 ![]() |
Bonjour,
je vous explique mon problème. je suis en train de construire une table paramètre (Param) qui est constituée de deux groupe de champs, le premier servant à l'identification(ident1,ident2,ident3,ident4,ident5) , le second rassemblant des informations(infos1,infos2,etc) dont je vais avoir besoin J'aimerais construire une fonction qui en fonction des valeurs d'un champs d'ident que je récupère par une requête me donne les bons champ infos correspondant dans la table param. Jusque la tout va bien Le problème est que je risque d'avoir des couples (ident1,ident2,ident3,ident4,ident5) qui n'existent pas dans la table PARAM (certains champs idents ne sont pas renseignées et nulles). exemple de couples (ident1='a',ident='b',ident3='c',ident4=0,ident5=0) Pour ce cas précis il faudrait quand même que cette fonction me ramène des champs en trouvant un couple d'idents(ident1,ident2,etc) qui lui est le plus "proche". ps : le choix lorsque le couple d'idents n'est pas présent dans la table doit se faire dans l'ordre suivant de comparaison de la valeur ident1 puis ident2,puis idens3,tec... Si j'utilise ce mode sélection, le couple d'ident récupéré a beaucoup de chances de trouver plusieurs couples d'ident correspondants. Dans ce cas, le choix se ferait sur celui qui a de plus de champs idents renseignés(cad non nulles) dans la table param. Auriez vous une idée sur la manière de construire cette fonction sans que ce soit un gros bordel. Merci je ne sais pas si j'ai été assez clair mais n'hésitez pas à me le dire si cela n'est pas le cas |
|
|
00
|
|
|
#2 | ||||
|
Membre chevronné
![]() O. JolySupport Inscription : décembre 2010 Messages : 287 ![]() |
Si j'ai bien compris, votre table a cette tête :
Code SQL :
Je procède de la manière suivante : Code sql :
Est-ce le type de résultat que vous souhaitez ? |
||||
|
10
|
|
|
#3 | ||||||
|
Nouveau Membre du Club
![]() Inscription : août 2009 Messages : 103 ![]() |
Bonsoir,
merci pour la réponse qui ressemble à ce que j'attendais mais par contre entre-temps les besoins ont changé : La table paramètre(titi) peut désormais contenir des champs dont les valeurs sont nulles (à titre d'exemple: a,b, ,0 ,param2,param3 ) Autre point , la seule règle existante est que si le couple d'ident ne correspond pas à l'identique, on cherche les couples d'ident (lignes) pour lesquels les champs idents ne correspondant pas sont égales à la valeur nulle. Parmi ces couples, on choisirait au final celui qui a le plus de champs correspondant non nulles. Code :
Code :
Code :
|
||||||
|
|
00
|
|
|
#4 | ||
|
Membre chevronné
![]() O. JolySupport Inscription : décembre 2010 Messages : 287 ![]() |
Je l'aurais plutôt réécrite comme ça.
Code SQL :
|
||
|
00
|
|
|
#5 | |
|
Nouveau Membre du Club
![]() Inscription : août 2009 Messages : 103 ![]() |
merci pour les reponses,
voila comment je l'ai ecrite au final Citation:
|
|
|
|
00
|
|
|
#6 | |
|
Nouveau Membre du Club
![]() Inscription : août 2009 Messages : 103 ![]() |
merci pour les reponses,
voila comment je l'ai ecrite au final Citation:
|
|
|
|
00
|
|
|
#7 | |
|
Nouveau Membre du Club
![]() Inscription : août 2009 Messages : 103 ![]() |
merci pour les réponses,
voila comment je l'ai écrite au final Citation:
|
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com