Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Bonjour à tous,
Je recherche à Flagger des données d'un champ et je suis confronté à quelques problèmes.
Voici ce qu'on peut trouver dans la table ou je souhaiterai effectuer un tri.
A |
1234567 |
12345678 |
123456789 |
123.567 |
123.5678 |
123.56789 |
PA010540 |
H1101.442 |
Dans mon script j'ai réalisé les points suivants :
- insertion de mon champ via un QVD
- len(champ) as NBR_CARACT_CHAMP1
J'ai par la suite 3 nombres qui se mette dans cette table NBR_CARACT_CHAMP1 = 7 / 8 / 9
Chose paradoxal, quand je sélectionne 8 de la table NBR_CARACT_CHAMP1 j'ai des champs qui sont égal à cela : 1009.33 =6 caract numérique + 1 point donc bon ok pour le 7 mais pour le 8
J'aimerai donc avoir vos recommandations sur les points suivants svp. Comment je peux faire pour :
- Enlever les champs avec un point dans ma table
- Enlever les champs commençant par P et H
En vous remerciant d'avance pour votre aide je vous souhaite une excellente soirée !
Tu peux aussi utiliser la fonction replace pour transformer les points et les espaces en rien.
Pour répondre à tes questions :
J'aimerai donc avoir vos recommandations sur les points suivants svp. Comment je peux faire pour :
- Enlever les champs avec un point dans ma table
==> Après ton From : where FindOneOf(TON_CHAMP, '.')=0
==> IF(FindOneOf(TON_CHAMP, '.')=0,TON_CHAMP) as TON_CHAMP_RECALCULE
- Enlever les champs commençant par P et H
==> Après ton From : where Left(TON_CHAMP, 1) <> 'P' or Left(TON_CHAMP, 1) <> 'H'
==> OU dans un IF : IF(Left(TON_CHAMP, 1) <> 'P' or Left(TON_CHAMP, 1) <> 'H', TON_CHAMP) as TON_CHAMP_RECALCULE
Tout ensemble, ça donne donc :
==> Soit dans une clause where : where FindOneOf(TON_CHAMP, '.')=0 AND (Left(TON_CHAMP, 1) <> 'P' or Left(TON_CHAMP, 1) <> 'H')
==> Soit dans un IF : IF(FindOneOf(TON_CHAMP, '.')=0 AND (Left(TON_CHAMP, 1) <> 'P' or Left(TON_CHAMP, 1) <> 'H', TON_CHAMP)) as TON_CHAMP_RECALCULE
Salut,
pour purger une chaine de caractere, il y a la fonction PurgeChar
pour enlever les points par exemple:
len(Purgechar(A, '.')) as NBR_CARACT_CHAMP1
Tu peux aussi utiliser la fonction replace pour transformer les points et les espaces en rien.
Pour répondre à tes questions :
J'aimerai donc avoir vos recommandations sur les points suivants svp. Comment je peux faire pour :
- Enlever les champs avec un point dans ma table
==> Après ton From : where FindOneOf(TON_CHAMP, '.')=0
==> IF(FindOneOf(TON_CHAMP, '.')=0,TON_CHAMP) as TON_CHAMP_RECALCULE
- Enlever les champs commençant par P et H
==> Après ton From : where Left(TON_CHAMP, 1) <> 'P' or Left(TON_CHAMP, 1) <> 'H'
==> OU dans un IF : IF(Left(TON_CHAMP, 1) <> 'P' or Left(TON_CHAMP, 1) <> 'H', TON_CHAMP) as TON_CHAMP_RECALCULE
Tout ensemble, ça donne donc :
==> Soit dans une clause where : where FindOneOf(TON_CHAMP, '.')=0 AND (Left(TON_CHAMP, 1) <> 'P' or Left(TON_CHAMP, 1) <> 'H')
==> Soit dans un IF : IF(FindOneOf(TON_CHAMP, '.')=0 AND (Left(TON_CHAMP, 1) <> 'P' or Left(TON_CHAMP, 1) <> 'H', TON_CHAMP)) as TON_CHAMP_RECALCULE
Bonjour Kevin je te remercie de ta réactivité décidément tu deviendras mon mentor je crois ^^
J'ai effectué tes solutions, j'ai choisi la solution where qui me semble moins pénible que la if ..
Pour la suppression des champs avec un point avec ta solution where FindOneOf(TON_CHAMP, '.')=0 Super ca marche au top je te remercie énormément je connaissais pas du tout celle la je la note ^^
Par la suite pour la suppression des caractère PA et H a sont non fonctionnel je vais travailler dessus ..
Merci encore pour ton aide !
Excellente journée !
Bonjour Youssef ce n'est pas exactement ce que je souhaite obtenir je te remercie en tout cas pour ta réactivité.
Excellente journée !