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 :

Recuperer à partir d'un "debiteur" ce qu'il doit payer à la fin de chaque mois


Sujet :

Langage SQL

  1. #1
    Futur Membre du Club
    Inscrit en
    Novembre 2006
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 13
    Points : 9
    Points
    9
    Par défaut Recuperer à partir d'un "debiteur" ce qu'il doit payer à la fin de chaque mois
    Je vais essayer de vous presenter le problème:

    Voici mes tables:

    La premiere table "Generale" represente ce que le debiteur doit payer aux differents adhérent (domaine bancaire):
    -----------------------------------------------------------------
    Adhérent Debiteur date facture (euro)
    -----------------------------------------------------------------
    1 | 2 | 2006/08/01 1000
    1 | 2 | 2006/08/15 1500
    1 | 2 | 2006/08/26 2000
    1 | 2 | 2006/10/23 4000
    2 | 2 | 2006/08/10 500
    2 | 2 | 2006/09/18 1600
    2 | 2 | 2006/10/28 2300


    La deuxième table "derjourmois" rassemble les derniers jours du mois de l'année actuelle jusqu'à la date actuelle

    -------------
    derjourmois
    -------------
    2006/01/31
    2006/02/28
    2006/03/31
    2006/04/30
    2006/05/31
    2006/06/30
    2006/07/31
    2006/08/31
    2006/09/30
    2006/10/31


    L'objectif est de créer une requete SQL qui recuperera à partir d'un "numéro de debiteur" ce qu'il doit payer à la fin de chaque fin mois de l'année.
    c'est à dire qu'on en registrera pour chaque fin de mois la derniere facture enregistrer pour chaque adhérents et puis faire la somme.


    Exemple: prenant le debiteur '2' . pour le 30/08/2006 par exemple, la dernire facture enregistrer pour l'adhérent '1' est:
    ------------------------------------------------------
    1 | 2 | 2006/08/26| 2000
    ------------------------------------------------------
    et pour l'adherent '2' ça sera:
    ------------------------------------------------------
    2 | 2 | 2006/08/10| 500
    ------------------------------------------------------
    alors le resultat est:
    -------------------------------------------
    Debiteur facture date
    -------------------------------------------
    2 | 2500 | 2006/08/31



    pour le 30/09/2006, il n'y a pas d'enregistrement pour le debiteur '2' et l'adhérant '1' alors c'est toujours:
    ------------------------------------------------------
    1 | 2 | 2006/08/26| 2000
    ------------------------------------------------------
    pour l'adhérent '2' c'est:
    ------------------------------------------------------
    2 | 2 | 2006/09/18| 1600
    ------------------------------------------------------
    Le resultat est:
    -------------------------------------------
    Debiteur facture date
    -------------------------------------------
    2 | 3600 | 2006/09/30

    Le resultat final est:

    -------------------------------------------------
    Debiteur date facture (euro)
    -------------------------------------------------
    2 | 2006/08/31| 2500
    2 | 2006/09/30| 3600
    2 | 2006/10/31| 6300


    Ce que j'ai réussi à faire c'est: avoir le resultat sans se preoccuper de l'adhérent et du debiteur. voici la requete:

    SELECT derjourmois, facture
    FROM General, derjourmois
    WHERE date = (SELECT MAX(date) FROM general where derjourmois >= date);

    Aprés tout les requetes que j'ai pu créer ne donner rien.

  2. #2
    Nouveau membre du Club
    Inscrit en
    Février 2005
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 31
    Points : 37
    Points
    37
    Par défaut
    salut,
    Pardon mais j'ai peur de ne pas avoir compris ton pb .
    En effet, si tu as juste besoin de remonter la somme des factures pourquoi tu n'utilise pas la fonction SUM et une sous-requête toute simple. Du style,

    SELECT derjourmois, (
    Select sum ( facture ) from generale
    where desjourmois.desjourmois >= date and debiteur = 2)
    FROM derjourmois

    Si c'est ça la solution étudie le cour SQL de devellopez.com

    See you

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