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

Développement SQL Server Discussion :

Select de certaines transactions d'une table


Sujet :

Développement SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juin 2009
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 61
    Par défaut Select de certaines transactions d'une table
    Bonjour,

    j'ai une table qui contient des données comme le montre le tableau de l'image en bas:
    Nom : Capture.PNG
Affichages : 127
Taille : 7,5 Ko

    sur l'image :
    opération 1:la rapprochement N°502 est une transaction qui lie le document A0000 de type 13 et le document B0000 de type 14
    opération2:le rapprochement N° 600 lie le document A0001 de type 13 et un document C0000 de type 24

    pour l'opération 1, il s'agit d'une annulation le document de type 14 signifie une annulation

    je veux faire un sélect pour afficher uniquement la transaction non annulée ,dans cette exemple la requête doit m'afficher uniquement le document N° A0001
    merci pour votre aide.

  2. #2
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 636
    Billets dans le blog
    10
    Par défaut
    Bonjour,

    Vous mentionnez qu'une opération de type "14" est une annulation, mais Est-ce que toutes les annulations sont des types "14", y a -t- il d'autres types d'annulations ?
    Si seul le type 14 est une annulation, alors utilisez :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Select no_Rapp
          ,Type_doc
          ,document
    from matable as main
    where not exists
         (select 1 
          from matable as subq
          where subq.no_Rapp = main.no_Rapp
            and subq.Type_doc = 14)
    Sinon listez toutes les valeurs comme ci-dessous
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Select no_Rapp
          ,Type_doc
          ,document
    from matable as main
    where not exists
         (select 1 
          from matable as subq
          where subq.no_Rapp = main.no_Rapp
            and subq.Type_doc in (val1, val2, ... valn)

  3. #3
    Membre confirmé
    Inscrit en
    Juin 2009
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 61
    Par défaut
    Merci infiniment pour votre réponse ,j'ai vraiment besoin de votre aide.
    oui le document 14 est le seul document d'annulation.
    j'ai essayé le code sql que m'avez proposé mais ça me donne toujours le même résultat:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Select T5.main.num_rapp,
         T5.main.type_doc
     
    from main T5 
    where not exists
         (select 1 
          from subq T6 
          where T6.num_rapp = T5.num_rapp
            and T6.type_doc=14)
            and T5.num_rapp in(600,502)
    voici le résultat de la requete:
    Nom : Capture.PNG
Affichages : 115
Taille : 4,2 Ko

  4. #4
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 636
    Billets dans le blog
    10
    Par défaut
    Vous avez mal adapté ma requete car vous avez inversé alias et nom de table
    Quel est le nom réel de vos tables et de vos colonnes, je vous communiquerai la requete exacte qu'il ne faudra pas modifier

    Dans la requete que je vous avais fournie
    ... from matable as main...
    il fallait remplacer matable par le nom réel de votre table
    et ne pas toucher à "main" ni à "SUBQ"

  5. #5
    Membre confirmé
    Inscrit en
    Juin 2009
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 61
    Par défaut
    merci infiniment pour votre aide c'est corrigé
    je cous souhaite bon courage

  6. #6
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 636
    Billets dans le blog
    10
    Par défaut
    Normal, c'est la partie en rouge qui ne va pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Select ReconNum
          ,SrcObjTyp
    from ITR1 as main
    where not exists
         (select 1 
          from ITR1 as subq
          where ReconNum = SrcObjTyp
            and SrcObjTyp=14)
      and main.ReconNum in(600,502)
    à remplacer par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Select ReconNum
          ,SrcObjTyp
    from ITR1 as main
    where not exists
         (select 1 
          from ITR1 as subq
          where Subq.ReconNum = Main.ReconNum
            and SrcObjTyp=14)
      and main.ReconNum in(600,502)
    Edit : visiblement vous l'aviez vu aussi, puisque résolu

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

Discussions similaires

  1. Copier certaines lignes d'une table vers une autre
    Par TNorth dans le forum Requêtes
    Réponses: 8
    Dernier message: 25/07/2006, 14h31
  2. Réponses: 5
    Dernier message: 19/06/2006, 23h22
  3. [VB6] Sélectionner certains enregistrements dans une table
    Par li_causi dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 06/05/2006, 14h28
  4. selection comlexe de champs sur une table
    Par allowen dans le forum Langage SQL
    Réponses: 2
    Dernier message: 14/03/2006, 15h00
  5. [TRANSACT] passer une table d'entier dans un SELECT
    Par tiboleo dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 28/04/2005, 10h22

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