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 :

Gestion de version


Sujet :

Langage SQL

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 26
    Points : 17
    Points
    17
    Par défaut Gestion de version
    Je suis dans un cas qui me semble relativement simple, mais impossible de trouver une requete simple pour m'en sortir.

    La table utilise un schéma du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    table "contrat"
    id_contrat (int, autoinc, clef primaire), id_client (int, foreign), code_contrat (varchar), version (int)
    Mon problème est "juste" de retrouver l'ensemble des contrats d'un client, dans leur dernière version uniquement.

    Ex: dans le cas ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    id_contrat | id_client | code_contrat | version
    13          1            CODE1          0
    17          1            CODE1          1
    19          1            AUTRE          0
    23          2            AUTRE          0
    ... il me faut les contrats du client 1, par exemple (mais uniquement les versions les plus hautes) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    id_contrat | id_client | code_contrat | version
    17          1            CODE1          1
    19          1            AUTRE          0
    PS: J'utilise PostgreSQL, mais je doute que ça ai une influence

  2. #2
    Inactif   Avatar de Médiat
    Inscrit en
    Décembre 2003
    Messages
    1 946
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 946
    Points : 2 227
    Points
    2 227
    Par défaut
    D’abord la requête
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT id_contrat, id_client, code_contrat, version
    FROM Contrat a
    WHERE version = (SELECT MAX(Version )
                     FROM   contrat b
                     WHERE  a.id_client    = b.id_client
                       AND  a.code_contrat = b.code_contrat)
    Il y a d’autres solutions.

    Mais, si tu as la possibilité de modifier le modèle de données, il est possible qu’il y ait une erreur de conception, la table que tu décris n’est pas une table de contrats, mais une table de « versions de contrat », il serait peut-être utile que tu es une vraie table « contrat »
    J'affirme péremptoirement que toute affirmation péremptoire est fausse
    5ième élément : barde-prince des figures de style, duc de la synecdoque
    Je ne réponds jamais aux questions techniques par MP

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 26
    Points : 17
    Points
    17
    Par défaut
    Sauf erreur de ma part, cette requête ne me sort qu'un seul enregistrement, non ? C'est l'ensemble des contrat pour un client donné qui m'intéresse. En imbriquant ça dans un autre sub-select peut être ?

    Reste que ton idée de table séparée est super intéressante mais malheureusement, je travaille sur une table déjà existante (elle contient plus de champs que ce que j'ai listé au dessus, bien sur) à laquelle un numéro de version a été ajouté ...

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 26
    Points : 17
    Points
    17
    Par défaut
    Bien ... je viens d'avoir connaissance d'un élément nouveau quand à la gestion des versions, je vais donc procéder d'une tout autre manière ... Merci beaucoup à toi Médiat pour le coup de main !

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

Discussions similaires

  1. [DCU] Gestion de version
    Par Clorish dans le forum Outils
    Réponses: 15
    Dernier message: 16/06/2005, 09h14
  2. [Conseils] Gestion de version Sources / Binaires
    Par Clorish dans le forum Outils
    Réponses: 18
    Dernier message: 09/06/2005, 14h14
  3. Gestion des versions d'objets dans les SGBD
    Par bennus dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 09/05/2005, 12h57
  4. [CVS] Gestion de version d'un projet
    Par Oliveuh dans le forum EDI et Outils pour Java
    Réponses: 5
    Dernier message: 28/03/2005, 23h11
  5. Gestion des versions travail en équipe
    Par yanis97 dans le forum WinDev
    Réponses: 1
    Dernier message: 05/10/2004, 21h18

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