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 :

[MSSQL] Problème pour sélectionner une seule occurence


Sujet :

Langage SQL

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 14
    Points : 12
    Points
    12
    Par défaut [MSSQL] Problème pour sélectionner une seule occurence
    Bonjour à tous,

    Je suis un petit nouveau sur le forum, désolé d'arriver et de poser direct une question,
    mais j'essayerais de vous aider assez vite (aujourd'hui c la merde ! )

    Voila je bosse sous MS SQL :


    J'ai une table (TABLE_REFERENCE) qui permet de lier des opérations entre elle,
    Lorsque ces opération sont liées entre elle, elles sont regroupées
    sous un numéro de lot unique (NUM_LOT)

    Voila maintenant le problème, je dois afficher tous les lots d'opérations
    de cette table (TABLE_REFERENCE) + une colonne d'une table référée
    (NUM_REGLT dans TABLE_REFERE) seulement bien entendu ce numéro est
    différent à chaque opération et je veux afficher une seule occurence pour un
    NUM_LOT spécifique

    L'idéal serait que le premier NUM_REGLT trouvé soit concatenné de "+"

    Voici en plus clair le résultat actuel :
    NUM_LOT | ... | NUM_REGLT
    1 ... 456
    1 ... 457
    Le résultat attendu :
    NUM_LOT | ... | NUM_REGLT
    1 ... 456+
    Ou éventuellement
    NUM_LOT | ... | NUM_REGLT
    1 ... 456 <- sans le plus

    voici ma requete actuelle :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    SELECT  RE.NUM_LOT
            ....
    	R.NUM_REGLT 
    FROM 	TABLE_REFERENCE RE
    	INNER JOIN TABLE_REFERE R
    	ON RE.CODE_OPER = R.CODE_OPER 
    WHERE   ....
    GROUP BY RE.NUM_LOT
             ....
    	 R.NUM_REGLT
    Maintenant ce que je ne peut pas faire :
    - effectuer ce traitement dans mon code C++
    - changer la structure de mes tables

  2. #2
    Rédacteur
    Avatar de WOLO Laurent
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Mars 2003
    Messages
    2 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 2 741
    Points : 4 414
    Points
    4 414
    Par défaut
    Pour quoi faire cela avec ton code C++ ?
    Je pense que tu n'obtiendras pas un code vraiment optimisé.
    La plupart des SGBDR t'offre leur optimisation gratuitement pourquoi ne pas en profiter ?

    Découvrez la FAQ de MS SQL Server.
    La chance accorde ses faveurs aux esprits avertis !

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 14
    Points : 12
    Points
    12
    Par défaut
    c'est justement pour çà que je ne veut pas le faire dans mon code C++,
    cette requete peut renvoyer plus de 5000 lignes, et à traiter çà serait trop lourd

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    956
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 956
    Points : 1 199
    Points
    1 199
    Par défaut
    Bonjour,
    Et avec un min,ça ne marcherai pas.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SELECT  RE.NUM_LOT
            ....
      Min( R.NUM_REGLT), count(*) as nbre
    FROM    TABLE_REFERENCE RE
       INNER JOIN TABLE_REFERE R
       ON RE.CODE_OPER = R.CODE_OPER
    WHERE   ....
    GROUP BY RE.NUM_LOT
             ....
    Bon, là tu ne sais pas s'il y en a plusieurs.
    Pour savoir s'il y en a plusieurs tu évalues nbre et eventuellemnt tu rajoute + si nbre >1
    A+
    Soazig

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 14
    Points : 12
    Points
    12
    Par défaut
    Erf j'avais vraiment pas les idées claires hier !!!!
    en tout cas merci à toi de m'avoir aidé sur ce coup la, effectivement çà marche très bien comme çà

    Allez zou un problème de résolu

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

Discussions similaires

  1. Problème pour maintenir une seule connexion
    Par ramoucha23 dans le forum Développement Web en Java
    Réponses: 3
    Dernier message: 13/06/2011, 15h37
  2. [MySQL] Grouper un champ pour n'avoir qu'une seule occurence
    Par Jarodd dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 18/01/2010, 09h18
  3. Réponses: 13
    Dernier message: 23/12/2004, 18h01
  4. [DLL] problème pour appeler une fonction d'une DLL
    Par bigboomshakala dans le forum MFC
    Réponses: 34
    Dernier message: 19/07/2004, 11h30
  5. Réponses: 3
    Dernier message: 29/08/2003, 10h57

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