OVH Cloud OVH Cloud

Contrôles de doublons

6 réponses
Avatar
Bonjour
Je souhaite vérifier si le nom d'un client n'existe pas déjà dans ma base
avant de l'insérer:
Je fais dans ma procédure stockée:

Select @doublon = count (idClient)
From Client
Where raisonSociale like '%' + @raisonSociale + '%'

Cette requête me donne un doublon s'il existe dans ma base un client
"PEUGEOT S.A." et que je viens de saisir "PEUGEOT".
Par contre, si un client "RENAULT" est présent dans ma base, je peux saisir
"RENAULT SA" sans message de doublon. J'ai alors essayé de compléter ma
clause WHERE :

or @raisonSociale like '%' + raisonSociale + '%'

mais ça ne marche pas.

Merci d'avance pour toute suggestion.

6 réponses

Avatar
Mattdef
Je ne pense pas que celà soit possible a partir de SQL, essaye plutot du
coté de la prog.

Matt :-)

"Bonjour" a écrit dans le message de
news:%23F9T$
Je souhaite vérifier si le nom d'un client n'existe pas déjà dans ma base
avant de l'insérer:
Je fais dans ma procédure stockée:

Select @doublon = count (idClient)
From Client
Where raisonSociale like '%' + @raisonSociale + '%'

Cette requête me donne un doublon s'il existe dans ma base un client
"PEUGEOT S.A." et que je viens de saisir "PEUGEOT".
Par contre, si un client "RENAULT" est présent dans ma base, je peux


saisir
"RENAULT SA" sans message de doublon. J'ai alors essayé de compléter ma
clause WHERE :

or @raisonSociale like '%' + raisonSociale + '%'

mais ça ne marche pas.

Merci d'avance pour toute suggestion.




Avatar
TF
C'est requête ou c'est une procédure stockée ?
"Bonjour" a écrit dans le message de
news:%23F9T$
Je souhaite vérifier si le nom d'un client n'existe pas déjà dans ma base
avant de l'insérer:
Je fais dans ma procédure stockée:

Select @doublon = count (idClient)
From Client
Where raisonSociale like '%' + @raisonSociale + '%'

Cette requête me donne un doublon s'il existe dans ma base un client
"PEUGEOT S.A." et que je viens de saisir "PEUGEOT".
Par contre, si un client "RENAULT" est présent dans ma base, je peux


saisir
"RENAULT SA" sans message de doublon. J'ai alors essayé de compléter ma
clause WHERE :

or @raisonSociale like '%' + raisonSociale + '%'

mais ça ne marche pas.

Merci d'avance pour toute suggestion.




Avatar
Fred BROUARD
Contrairement à ce qui t'a été dit, c'est parfaitement possible dans une simple
requête SQL...

Une possibilité est de mettre en place une clause WHERE comme suit :
WHERE raisonSociale like '%' + @raisonSociale + '%'
OR PATINDEX('%'+raisonSociale+'%', @raisonSociale) > 0

A lire aussi :
http://sqlpro.developpez.com/Doublons/Doublons.html

A +

Bonjour a écrit:
Je souhaite vérifier si le nom d'un client n'existe pas déjà dans ma base
avant de l'insérer:
Je fais dans ma procédure stockée:

Select @doublon = count (idClient)
From Client
Where raisonSociale like '%' + @raisonSociale + '%'

Cette requête me donne un doublon s'il existe dans ma base un client
"PEUGEOT S.A." et que je viens de saisir "PEUGEOT".
Par contre, si un client "RENAULT" est présent dans ma base, je peux saisir
"RENAULT SA" sans message de doublon. J'ai alors essayé de compléter ma
clause WHERE :

or @raisonSociale like '%' + raisonSociale + '%'

mais ça ne marche pas.

Merci d'avance pour toute suggestion.





--
Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste Delphi, web
Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
************************ www.datasapiens.com *************************
Avatar
Jean-Nicolas BERGER
Petite idée au vol : essaie de voir si un petit coup de
'%'+ltrim(rtrim(raisonSociale))+'%' ne passerai pas.
Ca marchera peut-être mieux (histoire de complément de ta chaine par des
espaces pour avoir la longueur définie en base...)
Cordialement.
JN.


"Bonjour" a écrit dans le message de
news:%23F9T$
Je souhaite vérifier si le nom d'un client n'existe pas déjà dans ma base
avant de l'insérer:
Je fais dans ma procédure stockée:

Select @doublon = count (idClient)
From Client
Where raisonSociale like '%' + @raisonSociale + '%'

Cette requête me donne un doublon s'il existe dans ma base un client
"PEUGEOT S.A." et que je viens de saisir "PEUGEOT".
Par contre, si un client "RENAULT" est présent dans ma base, je peux


saisir
"RENAULT SA" sans message de doublon. J'ai alors essayé de compléter ma
clause WHERE :

or @raisonSociale like '%' + raisonSociale + '%'

mais ça ne marche pas.

Merci d'avance pour toute suggestion.




Avatar
Bonjour
Merci à tous pour votre aide, sauf un ;-)

La syntaxe suivante est parfaitement correcte :

Select @doublon = count (idClient)
From Client
Where raisonSociale like '%' + @raisonSociale + '%'
Or @raisonSociale like '%' + raisonSociale + '%'

J'avais oublié une jointure entre 2 tables, ce qui faisait que mon serveur
ramait pour afficher tous les résultats...

PS : Mattdef est un petit rigolo que je supporte toute la journée ;-)



"Bonjour" a écrit dans le message de
news:%23F9T$
Je souhaite vérifier si le nom d'un client n'existe pas déjà dans ma base
avant de l'insérer:
Je fais dans ma procédure stockée:

Select @doublon = count (idClient)
From Client
Where raisonSociale like '%' + @raisonSociale + '%'

Cette requête me donne un doublon s'il existe dans ma base un client
"PEUGEOT S.A." et que je viens de saisir "PEUGEOT".
Par contre, si un client "RENAULT" est présent dans ma base, je peux


saisir
"RENAULT SA" sans message de doublon. J'ai alors essayé de compléter ma
clause WHERE :

or @raisonSociale like '%' + raisonSociale + '%'

mais ça ne marche pas.

Merci d'avance pour toute suggestion.




Avatar
Mattdef
waninowwwwwwwwwwwwwwwww

"Bonjour" a écrit dans le message de
news:%23bH%
Merci à tous pour votre aide, sauf un ;-)

La syntaxe suivante est parfaitement correcte :

Select @doublon = count (idClient)
From Client
Where raisonSociale like '%' + @raisonSociale + '%'
Or @raisonSociale like '%' + raisonSociale + '%'

J'avais oublié une jointure entre 2 tables, ce qui faisait que mon serveur
ramait pour afficher tous les résultats...

PS : Mattdef est un petit rigolo que je supporte toute la journée ;-)



"Bonjour" a écrit dans le message de
news:%23F9T$
> Je souhaite vérifier si le nom d'un client n'existe pas déjà dans ma


base
> avant de l'insérer:
> Je fais dans ma procédure stockée:
>
> Select @doublon = count (idClient)
> From Client
> Where raisonSociale like '%' + @raisonSociale + '%'
>
> Cette requête me donne un doublon s'il existe dans ma base un client
> "PEUGEOT S.A." et que je viens de saisir "PEUGEOT".
> Par contre, si un client "RENAULT" est présent dans ma base, je peux
saisir
> "RENAULT SA" sans message de doublon. J'ai alors essayé de compléter ma
> clause WHERE :
>
> or @raisonSociale like '%' + raisonSociale + '%'
>
> mais ça ne marche pas.
>
> Merci d'avance pour toute suggestion.
>
>