Précédent   Forum des professionnels en informatique > Bases de données > Langage SQL
Langage SQL Forum d'entraide sur le langage SQL et sur les questions liées à la conception de schéma (DDL). Cours SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 07/06/2011, 13h34   #1
Invité de passage
 
Homme
Inscription : 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 : 0
Points : 0
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 :
1
2
3
4
DELETE  FROM zonearticle
WHERE  NOT EXISTS  (SELECT Code, max(DateModif)
FROM zonearticle
GROUP BY code)
Merci d'avance
tottiasr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/06/2011, 14h33   #2
Membre Expert
 
Homme
Responsable de service informatique
Inscription : janvier 2009
Messages : 1 085
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 38
Localisation : France

Informations professionnelles :
Activité : Responsable de service informatique
Secteur : Boutique - Magasin

Informations forums :
Inscription : janvier 2009
Messages : 1 085
Points : 1 883
Points : 1 883
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.
tatayo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/06/2011, 14h45   #3
Invité de passage
 
Homme
Inscription : 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 : 0
Points : 0
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
tottiasr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/06/2011, 14h57   #4
Membre Expert
 
Inscription : janvier 2010
Messages : 1 084
Détails du profil
Informations personnelles :
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : janvier 2010
Messages : 1 084
Points : 1 573
Points : 1 573
Bonjour

Que donne ceci ?

Code SQL :
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
)
aieeeuuuuu est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 07/06/2011, 16h12   #5
Membre Expert
 
Homme
Responsable de service informatique
Inscription : janvier 2009
Messages : 1 085
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 38
Localisation : France

Informations professionnelles :
Activité : Responsable de service informatique
Secteur : Boutique - Magasin

Informations forums :
Inscription : janvier 2009
Messages : 1 085
Points : 1 883
Points : 1 883
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.
tatayo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/06/2011, 16h29   #6
Invité de passage
 
Homme
Inscription : 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 : 0
Points : 0
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
tottiasr est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h33.


 
 
 
 
Partenaires

Hébergement Web