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 les max des dates à partir d'une autre table


Sujet :

Langage SQL

  1. #1
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    13
    D�tails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 13
    Par d�faut Recuperer les max des dates à partir d'une autre table
    Bonjour,
    Si vous pouvez m'aider, voila le probleme:

    J'ai deux tables que voici:

    Table1 : les operations effctu�es sur un compte

    Date Compte
    2006-01-01 500
    2006-03-01 700
    2006-05-01 900
    2006-08-20 1000
    2006-08-28 2000
    2006-09-10 3000
    2006-09-20 3500
    2006-09-28 4000
    2006-10-29 5000

    Table2 :contient les dernier jour du mois de l'ann�e

    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


    Le but c'est pour chaque fin de mois on aura la derniere etat du compte:
    vois le resulta:

    2006-01-31 500
    2006-02-28 500
    2006-03-31 700
    2006-04-30 700
    2006-05-31 900
    2006-06-30 900
    2006-07-31 900
    2006-08-31 2000
    2006-09-30 4000
    2006-10-31 5000

    j'esp�re que vous avez compris
    et merci d'avance

  2. #2
    Membre �m�rite
    Avatar de HULK
    Inscrit en
    Juillet 2003
    Messages
    1 276
    D�tails du profil
    Informations personnelles :
    �ge : 45

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 276
    Par d�faut
    � premiere vue, je ferais comme ca :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
     
    SELECT Date, compte FROM Table1, Table2
    WHERE
    DATEPART(year,Table1.Date) = DATEPART(year,Table2.DerJourMois) AND
    DATEPART(month,Table1.Date) = DATEPART(month,Table2.DerJourMois) AND
    DATEPART(day,Table1.Date) = (SELECT MAX(DATEPART(day,Table1.Date) )FROM Table1)
    nan je viens d'essayer c'est n'importe quoi !

  3. #3
    Membre chevronn�
    Homme Profil pro
    D�veloppeur de jeux vid�o
    Inscrit en
    Mars 2006
    Messages
    400
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activit� : D�veloppeur de jeux vid�o

    Informations forums :
    Inscription : Mars 2006
    Messages : 400
    Par d�faut
    Tu peux obtenir l'enregistrement correspondant � une date maximum avec un LEFT JOIN.
    L'enregistrement le plus r�cent, c'est celui pour lequel aucun autre enregistrement n'est plus r�cent.

  4. #4
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    13
    D�tails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 13
    Par d�faut
    apres avoir essayer, on recupere juste le dernier compte du meme mois,
    c-a-dire si on au mois de juillet et il n' y a eu aucune operation on recupere rien. dans ce cas on doit normalement recuperer le compte de la dernier operation effectuer qui �t� pendant le mois mars.

  5. #5
    Membre chevronn�
    Homme Profil pro
    D�veloppeur de jeux vid�o
    Inscrit en
    Mars 2006
    Messages
    400
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activit� : D�veloppeur de jeux vid�o

    Informations forums :
    Inscription : Mars 2006
    Messages : 400
    Par d�faut
    Donne-nous la requ�te que tu as ex�cut� pour qu'on puisse la corriger.

    si on au mois de juillet et il n' y a eu aucune operation on recupere rien. dans ce cas on doit normalement recuperer le compte de la dernier operation effectuer qui �t� pendant le mois mars.
    Pour un mois donn�, tu r�cup�re toutes les dates inf�rieures ou �gales au moins en cours, et pour lesquelles aucun autre enregistrement n'est plus r�cent par rapport au moins donn�.
    Pour avoir la derni�re date, quel que soit le moins, il ne faut pas se limiter au moins donn�, mais prendre toutes les dates inf�rieures au moins.

  6. #6
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    13
    D�tails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 13
    Par d�faut
    Le but est que pour un client donner, on puisse lui dire dans un relev�, l'�tat de son compte chaque fin de mois.
    La Table1 donne en d�taille l'etat du compte � chaque operation effectu�e.
    Mais nous, on veut l'etat de son compte � la fin de chaque mois (dernier jour du mois 'table2'). C-a-d pour chaque fin de mois on lui donne son �tat compte qui est celle de la derniere operation effectu�e avant le dernier jour du mois.
    Si par exemple Monsieur X effectuer une operation au mois d'octobre et rien pendant le mois de novembre � la fin du mois on aura le meme chose que le mois d'octobre.
    J'esp�re que c clair, merci d'avance

  7. #7
    cdu
    cdu est d�connect�
    Membre exp�riment�
    Profil pro
    Inscrit en
    Ao�t 2004
    Messages
    196
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Ao�t 2004
    Messages : 196
    Par d�faut
    bonjour,
    tu dois pouvoir faire quelquechose comme
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    select table2.date, t1.compte
    from table2, table1 t1
    where to_char(table2.date,'MM-YYYY')=to_char(t1.date,'MM-YYYY')
    and t1.date >=all (select t2.date from table1 t2
                         where to_char(table2.date,'MM-YYYY')=to_char(t2,'MM-YYYY'))

  8. #8
    Membre Expert

    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 298
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 298
    Par d�faut Left Join
    Si pas changement d'ann�e, cette instruction fonctionne:

    SELECT max(A.T2DATE), max(B.T1MNT)
    FROM table2 A
    LEFT JOIN table1 B
    ON year(A.t2date) >= year(B.t1date)
    AND month(A.t2date) >= month(B.t1date)
    GROUP BY A.t2date

  9. #9
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    13
    D�tails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 13
    Par d�faut la solution est:
    SELECT derjourmois, compte FROM table1, table2
    WHERE
    date = (SELECT MAX(date) FROM table1 where derjourmois >= date );

    Merci pour votre aide

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. R�ponses: 1
    Dernier message: 14/03/2014, 20h55
  2. recupere des donn�es a partir d-une autre fenetre
    Par b2o92ikho dans le forum Forms
    R�ponses: 1
    Dernier message: 09/04/2009, 16h30
  3. R�ponses: 14
    Dernier message: 15/04/2008, 16h39
  4. R�ponses: 5
    Dernier message: 12/12/2006, 16h24
  5. Lister des element HTML � partir d'une autre frame
    Par psychomatt dans le forum G�n�ral JavaScript
    R�ponses: 6
    Dernier message: 03/03/2006, 18h03

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