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 :

Récupérer les dernieres modifications


Sujet :

Langage SQL

  1. #1
    Membre régulier
    Inscrit en
    Mai 2002
    Messages
    190
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 190
    Points : 83
    Points
    83
    Par défaut Récupérer les dernieres modifications
    Salut,

    Je fait de la tracabilité sur des objets. Ceux-ci changent d'état dans le temps et à chaque changement, j'ajoute une ligne dans une table pour enregistrer les nouveaux états (cad plusieurs caractéristiques sur l'objet qui viens de changer ainsi bien sur que l'identifiant de l'objet et la date à laquelle se produit le changement).

    Je souhaiterai récupérer - par objet - toutes ses dernières informations.

    J'ai tenté la requete suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    SELECT DISTINCT 
                          NumMia, MAX([Date]) AS Expr1, MAX(Etape) AS Expr2, MAX(Observation) AS Expr3, MAX(Pc) AS Expr4, MAX(Operateur) AS Expr5, 
                          MAX(TypeProduction) AS Expr6, MAX(Ligne) AS Expr7, MAX(Etat) AS Expr8
    FROM         dbo.[V_LFB_Tous les mouvements de MIA]
    GROUP BY NumMia
    ORDER BY NumMia
    Il ne veut pas du Max(Etat) car c'est une donnée de type bit...

    Quelqu'un peut m'aider ?
    Pour mes développements, j'utilise :
    WinX-64bits, Delphi Tokyo 10.2.2
    Merci, merci, merci... moi aussi je vous aime, c'est trop d'émotions...
    Key user des blagues nulles

  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 774
    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 774
    Points : 52 746
    Points
    52 746
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    tout d'abors un conseil : les noms des objets de ta base de données sont particulièrement mal choisit. Cela te posera de très graves problèmes au fur et a mesure de ton développement.
    En particulier l'utilisation d'espace et de caractères diacritiques et autre (ponctuation) est interdit.
    De plus tu utilise des mots réservés de SQL comme nom de colonne. C'est donc un base particulièrement pourrie que tu te prépare.
    A lire donc :
    http://sql.developpez.com/sqlaz/erreurs/#L1
    http://sqlpro.developpez.com/cours/s...age=partie1#L1
    etc...

    Ensuite, les solutions : si ton SGBDR accepte le Row Value Constructor :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT *
    FROM   V_LFB_Tous_les_mouvements_de_MIA
    WHERE  (NumMia, "Date") = (SELECT NumMia, MaxDate
                               FROM   V_LFB_Tous_les_mouvements_de_MIA
                               GROUP  BY NumMia)
    Sinon :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    SELECT *
    FROM   V_LFB_Tous_les_mouvements_de_MIA T1
    WHERE  EXISTS (SELECT *
                   FROM   V_LFB_Tous_les_mouvements_de_MIA T2
                   WHERE  T1.NumMia = T2.NumMia
                   GROUP  BY NumMia
                   HAVING Max(T2."Date") = T1."Date")
    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 régulier
    Inscrit en
    Mai 2002
    Messages
    190
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 190
    Points : 83
    Points
    83
    Par défaut
    Merci beaucoup pour tes conseils avisés, précis et exacts.

    Je n'aurais jamais trouvé tout seul ta seconde solution qui fonctionne très bien.

    Cependant, j'avoue n'avoir pas bien saisi comment elle fonctionne...

    Salut,

    Jbat.
    Pour mes développements, j'utilise :
    WinX-64bits, Delphi Tokyo 10.2.2
    Merci, merci, merci... moi aussi je vous aime, c'est trop d'émotions...
    Key user des blagues nulles

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

Discussions similaires

  1. Récupérer les derniers caractères d'une ligne d'un fichier texte
    Par Laaris dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 05/01/2009, 16h06
  2. Récupérer les dernier articles de chaque catégories
    Par bobic dans le forum Langage SQL
    Réponses: 3
    Dernier message: 04/12/2008, 16h12
  3. récupérer les derniers jours d'un mois
    Par fredonouille dans le forum Débuter avec Java
    Réponses: 2
    Dernier message: 14/05/2008, 20h45
  4. récupérer les dernieres lignes d'une table
    Par steave dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 20/04/2008, 12h26
  5. [VB.net 2003] Annuler les dernieres modifications d'une base de donnée
    Par winny107 dans le forum Accès aux données
    Réponses: 2
    Dernier message: 10/10/2006, 07h05

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