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 :

[HyperFile] Jointure sur l'événement le plus récent


Sujet :

Langage SQL

  1. #1
    Membre actif
    Inscrit en
    Octobre 2005
    Messages
    908
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 908
    Points : 271
    Points
    271
    Par défaut [HyperFile] Jointure sur l'événement le plus récent
    Bonjour,

    j'ai un p'tit souci pour faire une requête entre 2 tables...
    J'ai regardé vos cours de dispo sur le site mais je n'ai pas trouvé d'équivalent.
    Je m'adresse donc à votre générosité !!!

    Donc, j'ai une table T_produit(id, libellé) et T_infos (id, id_produit, couleur, taille, date)
    La table T_infos permet d'enregistrer les modifications d'un produit dans le temps.

    Imaginons que j'ai :

    T_produit
    id=1 libellé=P1
    id=2 libellé=P2

    P1 a eu 3 changement dans le temps et P2 en a eu 1 seul

    T_infos
    id=1 id_produit=1, couleur="rouge", taille=44, date=20060101
    id=2 id_produit=1, couleur="rouge", taille=55, date=20060102
    id=3 id_produit=2, couleur="noir", taille=12, date=20060102
    id=4 id_produit=1, couleur="vert", taille=55, date=20060109

    Moi, j'aimerais faire une requête qui me donnerais LA dernière info en date de chaque produit.
    Un truc comme ceci en faite :
    libellé="P1" couleur="vert" taille=55 date=20060109
    libellé="P2" couleur="noir" taille=12 date=20060102

    Mais je ne vois absolument pas comment le faire en SQL...
    Pourriez-vous m'aider SVP...

    Merci d'avance !
    Tchup. @+

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 772
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 772
    Points : 52 735
    Points
    52 735
    Billets dans le blog
    5
    Par défaut
    Peut tu poster le SQL DDL de tes tables et un jeu d'essais sous la forme d'INSERT SQL afin que nous puissions te donner la requête ?

    Merci pour cela de lire ceci : http://www.developpez.net/forums/showthread.php?t=944

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  3. #3
    Membre actif
    Inscrit en
    Octobre 2005
    Messages
    908
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 908
    Points : 271
    Points
    271
    Par défaut je travaille sous WinDev 9
    Désolé pour l'oubli... mon SGBDR tournant sous WinDev 9 est l'HyperFile.
    Il gère l'SQL mais je n'en connais ni sa version ni sa limite malheureusement...

    Je n'ai pas fait d'INSERT car j'ai importé et convertis mes tables qui étaient sous ACCESS.
    Pour le fun, je dirais que mes INSERT ressemblent à ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    INSERT INTO T_produit VALUES ("P1");
    INSERT INTO T_produit VALUES ("P2");
     
    INSERT INTO T_infos  (id_produit, couleur, taille, date) VALUES (1, "rouge", 44, 20060101);
    INSERT INTO T_infos  (id_produit, couleur, taille, date) VALUES (1, "rouge", 55, 20060102);
    INSERT INTO T_infos  (id_produit, couleur, taille, date) VALUES (2, "noir", 12, 20060102);
    INSERT INTO T_infos  (id_produit, couleur, taille, date) VALUES (1, "vert", 55, 20060109);
    Merci.

  4. #4
    Xo
    Xo est déconnecté
    Expert confirmé
    Avatar de Xo
    Inscrit en
    Janvier 2005
    Messages
    2 701
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 701
    Points : 4 238
    Points
    4 238
    "Ce que l'on conçoit bien s'énonce clairement,
    Et les mots pour le dire arrivent aisément." Nicolas Boileau

    "Expliquer empêche de comprendre si cela dispense de chercher"

    Quiz Oracle : venez tester vos connaissances !

    La FAQ Oracle : 138 réponses à vos questions
    Aidez-nous à la compléter

  5. #5
    Membre expérimenté Avatar de Yanika_bzh
    Homme Profil pro
    Responsable Applicatif et R&D
    Inscrit en
    Février 2006
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Responsable Applicatif et R&D
    Secteur : Finance

    Informations forums :
    Inscription : Février 2006
    Messages : 1 144
    Points : 1 738
    Points
    1 738
    Par défaut
    Attention, DATE est un mot réservé dans les langages SQL, tu devrais changer le nom de ton champs pour eviter d'avoir des soucis.

    Voici une requete qui pourra t'aider :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    SELECT b.libelle, c.couleur, c.taille, a.datemodif
    FROM t_produit b,
    t_infos c,
    (SELECT id_produit, MAX (datemodif)AS datemodif
       FROM t_infos
       GROUP BY id_produit) a
    WHERE a.id_produit = b.ID
    AND c.datemodif = a.datemodif
    AND c.id_produit = a.id_produit
    
    (J'ai remplacé date par DateModif)

    J'espere que ca peut t'aider
    Bon courage
    Dans la connaissance du monde, ceux qui ne savent rien en savent toujours autant que ceux qui n'en savent pas plus qu'eux. (Pierre Dac)

  6. #6
    Membre actif
    Inscrit en
    Octobre 2005
    Messages
    908
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 908
    Points : 271
    Points
    271
    Par défaut Trop Cool !!!
    Yanika_bzh,

    c'est exactement ce qu'il me fallait. En plus, grâce à toi je viens de comprendre plusieurs choses !!!

    @+

  7. #7
    Membre expérimenté Avatar de Yanika_bzh
    Homme Profil pro
    Responsable Applicatif et R&D
    Inscrit en
    Février 2006
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Responsable Applicatif et R&D
    Secteur : Finance

    Informations forums :
    Inscription : Février 2006
    Messages : 1 144
    Points : 1 738
    Points
    1 738
    Par défaut
    Pas de probleme
    Pense au bouton "Résolu"
    Dans la connaissance du monde, ceux qui ne savent rien en savent toujours autant que ceux qui n'en savent pas plus qu'eux. (Pierre Dac)

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

Discussions similaires

  1. [FB1.5]Vue avec jointure sur tables ?
    Par Sitting Bull dans le forum SQL
    Réponses: 2
    Dernier message: 07/12/2004, 17h07
  2. jointure sur table et procedure stocké
    Par pram dans le forum SQL
    Réponses: 3
    Dernier message: 18/11/2004, 21h56
  3. jointure sur une même table
    Par guillaumeVb6 dans le forum Langage SQL
    Réponses: 7
    Dernier message: 06/09/2004, 15h08
  4. jointure sur TROIS tables
    Par caribou_belle dans le forum Langage SQL
    Réponses: 8
    Dernier message: 01/03/2004, 11h20
  5. Jointure sur 2 tables de bases différentes
    Par Celina dans le forum Langage SQL
    Réponses: 10
    Dernier message: 10/11/2003, 11h56

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