|
| Chaineformate dans requête |
| Iniciado por msimonelli, 15,jul. 2019 11:26 - 3 respuestas |
| |
| | | |
|
| |
| Publicado el 15,julio 2019 - 11:26 |
Bonjour à tous, je fais une requête qui recherche les doublons sur trois rubriques de fichiers: Nom+Prénom+date de naissance. je voudrais utiliser une rubrique calculée avec la fonction chaineformate mais je n'arrive pas à y intégrer l'option de formatage ccMinuscule+ccSansAccent. Quelqu'un a t'il réalisé cela? Merci d'avance. |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 953 mensajes |
|
| Publicado el 15,julio 2019 - 12:21 |
Bonjour Michel,
oui lorsque vous souhaitez utiliser des fonctions ou constantes windev dans une requête, il faut tout préfixer par WL.
exemple :
_req est une chaîne="SELECT wl.ChaîneFormate('données SanS Accent et minuscule',wl.ccSansAccent+wl.ccMinuscule) as chaine_formatee" _result est une Source dede Données
SI HExécuteRequêteSQL(_result,hRequêteDéfaut,_req) ALORS HLitPremier(_result) Info(_result.chaine_formatee) HAnnuleDéclaration(_result) FIN
bon dèv |
| |
| |
| | | |
|
| | |
| |
| Publicado el 15,julio 2019 - 13:51 |
Bonjour Christophe, Tout d'abord, merci pour votre réponse:
Compter le nombre de WL.ChaîneFormate(Enfant.NomPrenom, wl.ccMajuscule+wl.ccSansAccent)+Enfant.Date_naissance non 'Null' par (Nom1, Prenom1 et Date_naissance) identiques. Le résultat est trié selon la valeur de Nom1 par ordre croissant, Prenom1 par ordre croissant et Date_naissance par ordre croissant. A l'exécution, message d'erreur
 :
N'étant pas féru de sql, un moyen de m'en sortir? |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 953 mensajes |
|
| Publicado el 15,julio 2019 - 15:56 |
rebonjour Michel,
j'avoue que je n'utilise jamais l'éditeur de requête de Windev 
vos rubriques Nom et Prénom de votre fichier Enfant sont-elle indexé ? si oui, est-ce que les options sensible à la casse et sensible à l'accentuation sont cochées ?
si ce n'est pas le cas, vous n'avez pas besoin de formater vos chaînes
Vous pouvez saisir directement ce code SQL dans votre requête, voir si vous obtenez ce que vous souhaitez :
SELECT enfant.nom, enfant.prenom, enfant.date_naissance, Count(CONCAT(enfant.nom,enfant.prenom,enfant.date_naissance)) as nb_doublon FROM enfant GROUP by enfant.nom, enfant.prenom, enfant.date_naissance HAVING nb_doublon > 1
la fonction CONCAT() permet de concaténer des chaînes |
| |
| |
| | | |
|
| | | | |
| | |
|