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

Langage SQL Discussion :

pb de boucle sur chaine de caracteres dans une jointure


Sujet :

Langage SQL

  1. #1
    Membre régulier
    Inscrit en
    Mai 2009
    Messages
    217
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 217
    Points : 103
    Points
    103
    Par défaut pb de boucle sur chaine de caracteres dans une jointure
    Bonjour,

    Je cherche à faire une jointure entre 2 tables de la façon suivante :

    1/ table ecritures
    numero_compte montant
    ...
    616000 50,00
    616100 20,00
    616200 80,00
    616300 50,00
    616400 80,00


    2/ table regroupement (qui indique par ligne les comptes à totaliser séparés par le caractere |)
    numero_ligne designation totalisation

    20 Entretiens et fournitures 616100|616200|616300


    le résultat attendu est la somme des montants des comptes (20,00 + 80,00 + 50,00) :

    20 Entretiens et fournitures 150,00


    J’arrive à le faire s’il n’y a que 2 numéros de compte de la façon suivante :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    SELECT  rg.numero_ligne, rg.designation
          ,sum(ecritures.montant) As Valeur
     
    FROM regroupement As rg
     
    join ecritures 
     
    on ecritures.numero_compte = LEFT(rg.totalisation,CHARINDEX('|', rg.totalisation)-1)
    OR ecritures.numero_compte = RIGHT(rg.totalisation,LEN(rg.totalisation) - CHARINDEX('|', rg.totalisation))
     
    GROUP BY rg.numero_ligne, rg.designation
    Mais s’il y en plus de 2, je ne trouve pas comment faire. Est il possible de faire une boucle sur un count des carateres | ?

    Merci de votre aide.

  2. #2
    Membre émérite Avatar de pacmann
    Homme Profil pro
    Consulté Oracle
    Inscrit en
    Juin 2004
    Messages
    1 626
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consulté Oracle
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 626
    Points : 2 845
    Points
    2 845
    Par défaut
    Salut !

    Pour ta jointure, tu peux tenter :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    totalisation like '%' + numero_compte + '%'
    (je mets '+' parce que je sens que tu es en SQL Server... sinon pour concaténer, c'est || )

    (c'est ma photo)
    Paku, Paku !
    Pour les jeunes incultes : non, je ne suis pas un pokémon...

    Le pacblog : http://pacmann.over-blog.com/

  3. #3
    Membre régulier
    Inscrit en
    Mai 2009
    Messages
    217
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 217
    Points : 103
    Points
    103
    Par défaut
    Merci pacmann, ça marche super bien et en plus c'est super simple : que demander de mieux !

    bonne journée
    a+

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 12/11/2008, 10h45
  2. [Tableaux] passer une chaine de caracteres dans une URL ?
    Par isa150183 dans le forum Langage
    Réponses: 3
    Dernier message: 16/09/2008, 15h06
  3. problem de chaine de caractere dans une structure
    Par lenetfm dans le forum Débuter
    Réponses: 11
    Dernier message: 18/04/2008, 08h25
  4. erreur pour une insertion d'une chaine de caractere dans une cellule
    Par amel95140 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 18/10/2006, 09h09
  5. Réponses: 2
    Dernier message: 04/11/2005, 11h35

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