IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MS SQL Server Discussion :

Existe t'il des curseurs !


Sujet :

MS SQL Server

  1. #1
    Membre habitué Avatar de Poisson59
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    213
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 213
    Points : 140
    Points
    140
    Par défaut Existe t'il des curseurs !
    Bonjour,

    Voici mon code SQL :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT id_level FROM TEST
    résultat :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    id_class     id_level	
    --------------------------
    1408	    630.631.674.1408.
    est t'il possible d'extraire à l'aide d'un curseur les info séparer par des points
    sans faire de substring parce que j'ai déja essayer et un moment donner ca ne marche pas bien

    pour avoir au final :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    id_class   id_level            col1   col2  col3   col4
    -----------------------------------------------------------
    1408      630.631.674.1408.       630    631   674   1408
    merci
    La connaissance n'est rien sans celles des autres !!!

  2. #2
    Membre éprouvé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Août 2006
    Messages
    730
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 730
    Points : 923
    Points
    923
    Par défaut
    pour que ca marche il te faut utiliser le CHARINDEX
    qui est l'équivalent d'un pos
    regarde dans la doc sqlserveur

    A+
    serge
    Errare humanum est, perseverare diabolicum (Sénèque)

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    434
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 434
    Points : 502
    Points
    502
    Par défaut
    Tu n'as pas le choix. SUBSTRING obligatoire.
    Et c'est ca qui ne marche pas ?
    http://www.developpez.net/forums/sho...d.php?t=204351

  4. #4
    Membre éprouvé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Août 2006
    Messages
    730
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 730
    Points : 923
    Points
    923
    Par défaut
    je te le fais pour les deux premiers, je te laisse les 2 suivants pour voir si tu as compris:

    select substring(id_level,1,charindex('.',id_level)-1) ,
    substring(id_level,charindex('.',id_level)+1,charindex('.',substring(id_level,1,charindex('.',id_level)))-1 ) from tatable

    A+
    serge
    Errare humanum est, perseverare diabolicum (Sénèque)

  5. #5
    Membre habitué Avatar de Poisson59
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    213
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 213
    Points : 140
    Points
    140
    Par défaut
    Merci serge je connaissais la manip regarde mon code

    voici mon probleme avec le substring:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Select id_class,id_level,
    substring(id_level,1,charindex('.',id_level)-1) as Col1,
    substring(id_level,1+len(substring(id_level,1,charindex('.',id_level))),charindex('.',id_level)-1) as Col2,
    substring(id_level,1+len(substring(id_level,1,charindex('.',id_level)))+ len(substring(id_level,1+len(substring(id_level,1,charindex('.',id_level))),charindex('.',id_level))),charindex('.',id_level)-1) as Col3,
    substring(id_level,1+len(substring(id_level,1,charindex('.',id_level)))+len(substring(id_level,1,charindex('.',id_level)))+ len(substring(id_level,1+len(substring(id_level,1,charindex('.',id_level))),charindex('.',id_level))),charindex('.',id_level)-1) as Col4
    From TEST
    Voici le résultat pour certain enregistrement et je ne comprend pas pourquoi il ne fais pas ce que je lui dis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    id_class	id_level	  Col1	Col2	Col3	Col4
    ------------------------------------------------------------
    1375	   1055.1067.1189.1375.	  1055	1067	1189	1375	
    1376	   1055.1067.1189.1376.	  1055	1067	1189	1376	
    1405	   1055.1405.             1055	1405		
    1406	   630.639.1406.	  630	639	140	.
    1407	   630.1407.	          630	140	.	
    1408	   630.631.674.1408.	  630	631	674	140
    1409	   630.631.674.1409.	  630	631	674	140
    1411	   630.631.674.1411.	  630	631	674	141
    1412	   630.631.672.1412.	  630	631	672	141
    Tous vas bien pour les trois premiers enregistrements
    et là je n'arrive pas a comprendre la Col2 et Col3 des enregistrements dont l'id_class est égal à 1406 et 1407
    je n'arrive pas à comprendre la Col4 des enregistrement dont l'id_class est égal à 1408 1409 1411 1412

    Ya t'il un probleme sur ma reque SQL
    La connaissance n'est rien sans celles des autres !!!

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    434
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 434
    Points : 502
    Points
    502
    Par défaut
    Poisson59,

    ce n'est pas la requête qui pose un réel problème, c'est ton jeu de test.
    Dans ton premier message (celui posté sur le même sujet la semaine dernière), ainsi que dans le premier message de ce post, tu nous montres un id_level qui ne se termine pas par un '.'

    Ensuite, tu prends le code de serge064 (et je comprends maintenant pourquoi le mien de la semaine dernière à te lire ne marche pas), tu l'exécutes et nous montre le soucis.

    Or si je regarde bien, ta colonne id_level se termine systématiquement par un '.'

    Donc ce n'est pas la même question, et ce ne sera pas la même réponse. Car PATINDEX dans mon code et celui de serge regarde où se trouve le ., et se base là-dessus pour déterminer la sous-chaine de caractère à extraire.

    Voilà.

  7. #7
    Membre habitué Avatar de Poisson59
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    213
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 213
    Points : 140
    Points
    140
    Par défaut
    Salut ZERS (je me suis tromper sur le 1er code effectivement il manque le point que je viens de modifier)
    Explique moi pourqoui le dernier code que j'execute ne marche pas alors que la syntaxe est bonne car les trois 1er enregistrement fonctionnent ?

    et le code de Serge marche seulement pour les deux premieres Colonne
    pour la troisieme colonne il est obliger d'utiliser un len(Substring'id_level,.....)

    donc ca revient à mon code dy dessus
    La connaissance n'est rien sans celles des autres !!!

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    434
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 434
    Points : 502
    Points
    502
    Par défaut
    ca marche pour les premiers enregistrements tout simplement parce que tu as de la chance.

    pour les 3 premières lignes, les nombres séparées par des '.' ont tous une longueur identique (en l'occurence ici 4 chiffres)

    Mais dès que tu en as un ou plusieurs qui n'ont pas le même nombre de chiffres, tu te retrouves avec un décalage. Sur la 4ième ligne par exemple, tu as deux nombres avec 3 chiffres et un avec 4 --> décalage de 1, il te manque le dernier chiffre.

    Je t'invite vivement à prendre le morceau de code que je t'avais fait pour le post précédent et de chercher comment le modifier pour qu'il ne prenne pas en compte de dernier '.'. C'est d'une simplicité enfantine.

    Maintenant tu as un second soucis : certaines de tes lignes ont 4 nombres séparés par des '.', d'autres 3, d'autres 2, bref tu n'as rien d'uniforme.

    Il te faut donc là aussi, intégrer en amont de ma procédure un morceau de code qui va uniformiser les données, de telle sorte que tu es toujours un jeu de 4 nombres séparés par des '.'
    Encore une fois, rien de plus enfantin.

    Et surtout, n'utilise pas de curseur pour faire cela. Tu vas tuer ton serveur

  9. #9
    Membre éprouvé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Août 2006
    Messages
    730
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 730
    Points : 923
    Points
    923
    Par défaut
    poisson59

    pense a indiquer TOUT et EXACTEMENT tes demandes car que ce soit pour ZERS ou moi même (ou quelqu'un d'autre), on cherche dans des directions fausses pour rien.

    pense que l'on passe plus de temps a lire, comprendre et essayer de trouver la soluce que toi pour la décrire.
    Errare humanum est, perseverare diabolicum (Sénèque)

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    434
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 434
    Points : 502
    Points
    502
    Par défaut
    Citation Envoyé par serge0934
    pense que l'on passe plus de temps a lire, comprendre et essayer de trouver la soluce que toi pour la décrire.
    et en plus on n'est pas payé
    Sans rire, en plus ca coute de l'argent à nos boites. Le temps qu'on cherche ici, on bosse pas

  11. #11
    Expert confirmé
    Avatar de rudib
    Homme Profil pro
    Fakir SQL Server & NoSQL
    Inscrit en
    Mai 2006
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Fakir SQL Server & NoSQL

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 573
    Points : 4 043
    Points
    4 043
    Par défaut
    Citation Envoyé par ZERS
    et en plus on n'est pas payé
    Sans rire, en plus ca coute de l'argent à nos boites. Le temps qu'on cherche ici, on bosse pas
    Salut,

    Je m'insinue gratuitement (dans les deux sens du terme ) pour une remarque : si j'étais ta boîte, je serais satisfait que tu passes du temps à aider, et en même temps à approfondir tes connaissances techniques.
    Evidemment, si tu posais toutes tes moindres questions techniques sur le forum sans chercher par toi-même, ne serait-ce qu'un petit (je n'accuse personne), là par contre, ça me poserait un problème.
    Rudi Bruchez
    Rudi Bruchez EIRL, solutions MS SQL Server et NoSQL
    LinkedIn - [Outil libre de diagnostic SQL Server : Sql Trismegiste]
    LIVRES : Optimiser SQL Server -
    Microsoft SQL Server 2012 Security Cookbook
    - les bases de données NoSQL

    e-learning : LinkedIn Learning - Pluralsight

  12. #12
    Membre habitué Avatar de Poisson59
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    213
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 213
    Points : 140
    Points
    140
    Par défaut
    Bonjour,
    Crois moi que je ne pose pas des question sans recherche,
    je passe uniquement par le forum lorsque je ne trouve pas la syntaxe.
    Et crois moi je ne suis pas en train de me servir des gens pour avancer
    je demande juste un coup de main.
    Je connais bien les syntaxe Oracle mais SQL SERVER j'y debute car je viens de changer de boite.

    Maintenant ce sont les gens du forum qui decide de répondre ou non et si les gens le font c'est qu'ils y ont envi.
    Je ne force la main de personne !!!

    Donc MERCI à tous ceux qui m'ide
    et Merci à tous ceux qui ne m'aide pas
    La connaissance n'est rien sans celles des autres !!!

  13. #13
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    434
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 434
    Points : 502
    Points
    502
    Par défaut
    Citation Envoyé par Poisson59
    Bonjour,
    Crois moi que je ne pose pas des question sans recherche,
    je passe uniquement par le forum lorsque je ne trouve pas la syntaxe.
    Et crois moi je ne suis pas en train de me servir des gens pour avancer
    je demande juste un coup de main.
    Je connais bien les syntaxe Oracle mais SQL SERVER j'y debute car je viens de changer de boite.

    Maintenant ce sont les gens du forum qui decide de répondre ou non et si les gens le font c'est qu'ils y ont envi.
    Je ne force la main de personne !!!

    Donc MERCI à tous ceux qui m'ide
    et Merci à tous ceux qui ne m'aide pas
    Mais c'est pas ce qu'on dit. Ce qu'on dit c'est que quand tu poses une question, ne change pas en cours de route d'exemple numérique, prend ton temps pour donner un maximum de détail. ;-). Car nous on passe du temps à répondre à une question qui ne cesse d'évoluer !

    Ensuite, très honnêtement, en pure syntaxe SQL, entre oracle et MS SQL server, y'a pas tant de différence que cela, pour peu qu'un utilise du SQL et pas des fonctions faites par les éditeurs et qui ne sont pas portables !

  14. #14
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    434
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 434
    Points : 502
    Points
    502
    Par défaut
    Citation Envoyé par rudib
    remarque : si j'étais ta boîte, je serais satisfait que tu passes du temps à aider, et en même temps à approfondir tes connaissances techniques.
    Salut rudi,

    bon raisonnement si tu considères que je suis informaticien. Or pas du tout, pour moi l'informatique c'est Excel, Outlook et PowerPoint.

    Ceci dit j'ai un peu essayé de faire des trucs par moi-même, quand j'avais besoin d'outils pour faire mon activité et j'aime bien discuter avec les techos de ma boite. C'est pour cela que je connais un peu SQL, MSQLSERVER et que j'ai quelques notions de DBAs. ;-)

    Mais c'est pas du tout mon métier !

  15. #15
    Membre habitué Avatar de Poisson59
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    213
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 213
    Points : 140
    Points
    140
    Par défaut
    Bonjour à tous voila la solution pour mon problème apres des heures de concentration et l'utilisation de plusieurs fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    SELECT id_class,id_level,
    replace(left(id_level,patindex('%.%',id_level)),'.','') AS COL1,
    replace(left(replace(id_level,left(id_level,patindex('%.%',id_level)),''),patindex('%.%',replace(id_level,left(id_level,patindex('%.%',id_level)),''))),'.','') AS COL2,
    replace(left(replace(id_level,left(id_level,patindex('%.%',id_level))+left(replace(id_level,left(id_level,patindex('%.%',id_level)),''),patindex('%.%',replace(id_level,left(id_level,patindex('%.%',id_level)),''))),''),patindex('%.%',replace(id_level,left(id_level,patindex('%.%',id_level))+left(replace(id_level,left(id_level,patindex('%.%',id_level)),''),patindex('%.%',replace(id_level,left(id_level,patindex('%.%',id_level)),''))),''))),'.','') AS COL3,
    replace(left(replace(id_level,left(id_level,patindex('%.%',id_level))+left(replace(id_level,left(id_level,patindex('%.%',id_level)),''),patindex('%.%',replace(id_level,left(id_level,patindex('%.%',id_level)),'')))+left(replace(id_level,left(id_level,patindex('%.%',id_level))+left(replace(id_level,left(id_level,patindex('%.%',id_level)),''),patindex('%.%',replace(id_level,left(id_level,patindex('%.%',id_level)),''))),''),patindex('%.%',replace(id_level,left(id_level,patindex('%.%',id_level))+left(replace(id_level,left(id_level,patindex('%.%',id_level)),''),patindex('%.%',replace(id_level,left(id_level,patindex('%.%',id_level)),''))),''))),''),patindex('%.%',replace(id_level,left(id_level,patindex('%.%',id_level))+left(replace(id_level,left(id_level,patindex('%.%',id_level)),''),patindex('%.%',replace(id_level,left(id_level,patindex('%.%',id_level)),'')))+left(replace(id_level,left(id_level,patindex('%.%',id_level))+left(replace(id_level,left(id_level,patindex('%.%',id_level)),''),patindex('%.%',replace(id_level,left(id_level,patindex('%.%',id_level)),''))),''),patindex('%.%',replace(id_level,left(id_level,patindex('%.%',id_level))+left(replace(id_level,left(id_level,patindex('%.%',id_level)),''),patindex('%.%',replace(id_level,left(id_level,patindex('%.%',id_level)),''))),''))),''))),'.','') AS COL4,
    replace(left(replace(id_level,left(id_level,patindex('%.%',id_level))+left(replace(id_level,left(id_level,patindex('%.%',id_level)),''),patindex('%.%',replace(id_level,left(id_level,patindex('%.%',id_level)),'')))+left(replace(id_level,left(id_level,patindex('%.%',id_level))+left(replace(id_level,left(id_level,patindex('%.%',id_level)),''),patindex('%.%',replace(id_level,left(id_level,patindex('%.%',id_level)),''))),''),patindex('%.%',replace(id_level,left(id_level,patindex('%.%',id_level))+left(replace(id_level,left(id_level,patindex('%.%',id_level)),''),patindex('%.%',replace(id_level,left(id_level,patindex('%.%',id_level)),''))),'')))+left(replace(id_level,left(id_level,patindex('%.%',id_level))+left(replace(id_level,left(id_level,patindex('%.%',id_level)),''),patindex('%.%',replace(id_level,left(id_level,patindex('%.%',id_level)),'')))+left(replace(id_level,left(id_level,patindex('%.%',id_level))+left(replace(id_level,left(id_level,patindex('%.%',id_level)),''),patindex('%.%',replace(id_level,left(id_level,patindex('%.%',id_level)),''))),''),patindex('%.%',replace(id_level,left(id_level,patindex('%.%',id_level))+left(replace(id_level,left(id_level,patindex('%.%',id_level)),''),patindex('%.%',replace(id_level,left(id_level,patindex('%.%',id_level)),''))),''))),''),patindex('%.%',replace(id_level,left(id_level,patindex('%.%',id_level))+left(replace(id_level,left(id_level,patindex('%.%',id_level)),''),patindex('%.%',replace(id_level,left(id_level,patindex('%.%',id_level)),'')))+left(replace(id_level,left(id_level,patindex('%.%',id_level))+left(replace(id_level,left(id_level,patindex('%.%',id_level)),''),patindex('%.%',replace(id_level,left(id_level,patindex('%.%',id_level)),''))),''),patindex('%.%',replace(id_level,left(id_level,patindex('%.%',id_level))+left(replace(id_level,left(id_level,patindex('%.%',id_level)),''),patindex('%.%',replace(id_level,left(id_level,patindex('%.%',id_level)),''))),''))),''))),''),patindex('%.%',replace(id_level,left(id_level,patindex('%.%',id_level))+left(replace(id_level,left(id_level,patindex('%.%',id_level)),''),patindex('%.%',replace(id_level,left(id_level,patindex('%.%',id_level)),'')))+left(replace(id_level,left(id_level,patindex('%.%',id_level))+left(replace(id_level,left(id_level,patindex('%.%',id_level)),''),patindex('%.%',replace(id_level,left(id_level,patindex('%.%',id_level)),''))),''),patindex('%.%',replace(id_level,left(id_level,patindex('%.%',id_level))+left(replace(id_level,left(id_level,patindex('%.%',id_level)),''),patindex('%.%',replace(id_level,left(id_level,patindex('%.%',id_level)),''))),'')))+left(replace(id_level,left(id_level,patindex('%.%',id_level))+left(replace(id_level,left(id_level,patindex('%.%',id_level)),''),patindex('%.%',replace(id_level,left(id_level,patindex('%.%',id_level)),'')))+left(replace(id_level,left(id_level,patindex('%.%',id_level))+left(replace(id_level,left(id_level,patindex('%.%',id_level)),''),patindex('%.%',replace(id_level,left(id_level,patindex('%.%',id_level)),''))),''),patindex('%.%',replace(id_level,left(id_level,patindex('%.%',id_level))+left(replace(id_level,left(id_level,patindex('%.%',id_level)),''),patindex('%.%',replace(id_level,left(id_level,patindex('%.%',id_level)),''))),''))),''),patindex('%.%',replace(id_level,left(id_level,patindex('%.%',id_level))+left(replace(id_level,left(id_level,patindex('%.%',id_level)),''),patindex('%.%',replace(id_level,left(id_level,patindex('%.%',id_level)),'')))+left(replace(id_level,left(id_level,patindex('%.%',id_level))+left(replace(id_level,left(id_level,patindex('%.%',id_level)),''),patindex('%.%',replace(id_level,left(id_level,patindex('%.%',id_level)),''))),''),patindex('%.%',replace(id_level,left(id_level,patindex('%.%',id_level))+left(replace(id_level,left(id_level,patindex('%.%',id_level)),''),patindex('%.%',replace(id_level,left(id_level,patindex('%.%',id_level)),''))),''))),''))),''))),'.','') AS COL5
    FROM kb_class
    ;
    merci à tous ceux qui m'ont aidés y compris ZERS !!!
    La connaissance n'est rien sans celles des autres !!!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Existe t-il des Sites en php prêt à l'emploi...tout fait !!!
    Par Chronax dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 10
    Dernier message: 09/03/2006, 17h01
  2. Réponses: 4
    Dernier message: 09/03/2006, 11h28
  3. Existe t-il des transactions "globales"
    Par devdev dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 23/03/2005, 20h12
  4. existe t 'il des programme pour transformer les bases
    Par creazone dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 05/10/2004, 14h11
  5. Existe-t-il des Dé-compilateurs sur Terre?
    Par Julien_riquelme dans le forum Autres éditeurs
    Réponses: 11
    Dernier message: 15/12/2003, 01h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo