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 :

Création d'une requête sql


Sujet :

Langage SQL

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2011
    Messages : 10
    Points : 7
    Points
    7
    Par défaut Création d'une requête sql
    Bonjour,

    j'ai une table sous Access, composée de 3 champs.

    Codearticle , datemodification, zone

    exemple :

    300580     01/10/2010    aaa
    300580     02/10/2010    bbb 
    300580     06/08/2010    ccc
    314314     02/03/2009    aaa
    314314     05/05/2011    ccc
    Je souhaiterais pouvoir effacer toutes les lignes inférieures à la date maximum de chaque article

    Est-ce possible ?

    J'étais parti sur cette idée la mais ca ne fonctionne pas..

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    delete  from zonearticle
    where  not exists  (SELECT Code, max(DateModif)
    FROM zonearticle
    group by code)
    Merci d'avance

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 197
    Points : 12 772
    Points
    12 772
    Par défaut
    Bonjour,
    Une piste: en fait tu cherches à supprimer les lignes de la table pour lesquelles il existe une autre ligne dans la même table, pour le même article, avec une date supérieure.

    Je te laisse traduire ça en SQL.

    Juste une question: quelle est la position adoptée si deux modifications ont eut lieu à la même date pour un même article ?

    Tatayo.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2011
    Messages : 10
    Points : 7
    Points
    7
    Par défaut suite
    salut tatayo,

    en fait je veux supprimer toutes les dates inférieurs et pas supérieurs à la dernière date.

    Honnêtement la je bloque vraiment sur le code j'arrive pas à trouver de quel manière le faire.

    Pour ta question, il n'y a qu'un mouvement par jour donc pas de problème.

    Merci

  4. #4
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    Bonjour

    Que donne ceci ?

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    DELETE  FROM zonearticle
    WHERE  EXISTS  (
        SELECT *
        FROM zonearticle Z
        WHERE Z.code = zonearticle.code
            AND Z.DateModif > zonearticle.DateModif
    )

  5. #5
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 197
    Points : 12 772
    Points
    12 772
    Par défaut
    Citation Envoyé par tottiasr Voir le message
    salut tatayo,

    en fait je veux supprimer toutes les dates inférieurs et pas supérieurs à la dernière date.
    C'est précisément ce que j'ai écris: tu supprimes celles pour lesquelles il existe une ligne avec une date supérieure. Donc tu supprimes celles qui ont une date inférieure à la date max...

    Mais la formulation de la phrase se rapproche plus de la requête SQL qui en découle, telle que celle indiquée par aieeeuuuuu.

    Tatayo.

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2011
    Messages : 10
    Points : 7
    Points
    7
    Par défaut suite
    j'ai de nouveaux lu ta phrase et effectivement c'est ce que tu voulais dire... je crois effectivement que j'avais pris le problème à l'envers.

    Je vous tiens au courant si j'arrive à avoir ce que je veux.

    Merci

Discussions similaires

  1. Création d'une requête SQL imbriquée
    Par Mariniinha dans le forum Requêtes
    Réponses: 4
    Dernier message: 25/10/2011, 16h13
  2. Création d'une requête SQL en 4D
    Par tphetsavan dans le forum 4D
    Réponses: 2
    Dernier message: 11/05/2010, 17h32
  3. [AC-2003] création d'une requête SQL directe en VBA
    Par patbeautifulday dans le forum VBA Access
    Réponses: 3
    Dernier message: 25/06/2009, 14h09
  4. Réponses: 1
    Dernier message: 03/04/2009, 10h09
  5. problème de création d'une requête SQL
    Par crushilefou dans le forum Requêtes
    Réponses: 9
    Dernier message: 07/12/2007, 11h59

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