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 :

Recherche dans une même table


Sujet :

Langage SQL

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Collégien
    Inscrit en
    Août 2014
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Collégien
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Août 2014
    Messages : 13
    Points : 7
    Points
    7
    Par défaut Recherche dans une même table
    Bonjour à tous,

    Pour un débutant en SQL, j'ai là un problème que je ne sais pas résoudre.

    Dans une base SQL Server une table enregistre tous les mouvements comptables.
    Mon but est de vérifier le montant de TVA payé aux fournisseurs pour une période entre le 01 Janvier de l'année et une date limite.

    J'ai donc dans cette table, pour chaque facture fournisseur, 2 lignes qui comportent les informations dont j'ai besoin :

    Compte Date NumPiece Mnt Tiers DateVir
    4456640000 20220101 001250 111,75 Boucherie Sanzot
    4015002480 20220101 001250 670,5 Boucherie Sanzot 20220216

    Il faut que je fasse la somme des Mnt (111,75) dans le Compte (44566400000) pour les factures payées à la DateVir (20220216) qui est enregistrée dans le compte 4015*
    Le lien entre ces lignes est le numéro de facture NumPiece (001250)


    Comment est ce réalisable ?

    Merci de votre aide

    Salutations

  2. #2
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 133
    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 133
    Points : 38 556
    Points
    38 556
    Billets dans le blog
    9
    Par défaut
    Bonjour,

    Je pense que ceci correspond au besoin

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    select T1.Compte
         , T1.Numpiece    
         , S1.Tot
    from T1
    left join
        (select Numpiece
              , sum(Mnt) as Tot
         from T1
         group by Numpiece     
         ) as S1
       on S1.Numpiece=T1.Numpiece
    Where T1.Datevir is null
    Order by T1.Compte
           , T1.Numpiece

    Il reste à ajouter la restriction sur la périodes de dates avec BETWEEN par exemple

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Collégien
    Inscrit en
    Août 2014
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Collégien
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Août 2014
    Messages : 13
    Points : 7
    Points
    7
    Par défaut
    Bonjour,

    Merci pour l'aide.
    Je vais tester dès que possible.
    Petite question : La condition sur DateVir is Null peut être supprimée, car elle ne l'est pas forcément ?

    Salutations

  4. #4
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 133
    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 133
    Points : 38 556
    Points
    38 556
    Billets dans le blog
    9
    Par défaut
    J'ai mis la condition T1.Datevir is null pour pouvoir grouper sur chaque compte concerné, si cette condition n'est pas fiable, comment reconnait-on le compte sur lequel il faut regrouper les montants ?

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Collégien
    Inscrit en
    Août 2014
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Collégien
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Août 2014
    Messages : 13
    Points : 7
    Points
    7
    Par défaut
    Bonjour,

    C'est la ligne du compte 4456640000 qui a le même numéro de pièce que sur la ligne du compte 4015*

    4015* représente tous les comptes fournisseurs dont la racine commence par 4015

    Si la requête devait être faite en 2 temps, je suppose que l'on aurait :
    En premier :
    Une liste des lignes (enregistrements) dont le champ Compte commence par 4015*, bornée entre le 01/01/2022 et une date choisie de manière arbitraire.
    Chaque ligne représentant UNE seule facture fournisseur, identifiée par son NumPiece.
    En second :
    Il faudrait, alors, aller chercher et sommer toutes les lignes dont le champ Compte est égal à 4456640000 et dont le numéro de pièce se trouve dans la première liste.

    En fait, on veut savoir quelles sont les factures fournisseurs payées depuis le 01012022 et une date donnée.
    Lorsque l'on a cette liste, on va chercher leur correspondance dans le compte de TVA pour en faire la somme.

    Dans ma petite tête c'est clair mais je ne sais pas si je te le traduis de manière compréhensible.

    Salutations

Discussions similaires

  1. Copier un enregistrement dans une même table
    Par slammer dans le forum Langage SQL
    Réponses: 11
    Dernier message: 04/05/2010, 23h17
  2. [AC-2003] Recherche multi-critère dans une même table
    Par Tadao dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 09/03/2010, 19h01
  3. Nls_lang : deux codage dans une même table
    Par Oraman dans le forum Oracle
    Réponses: 6
    Dernier message: 22/08/2006, 12h36
  4. [Requête] plusieurs champs dans une même table ayants la même source
    Par Christophe93250 dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 25/04/2006, 16h18
  5. [SQL] Somme de 2 colonnes dans une même table
    Par Cyrilange dans le forum Langage SQL
    Réponses: 6
    Dernier message: 11/04/2005, 08h32

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