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

Requêtes et SQL. Discussion :

fonction date avec access


Sujet :

Requêtes et SQL.

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    244
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2005
    Messages : 244
    Par défaut fonction date avec access
    bonjour, je dois supprimer les clients qui ne sont plus venu depuis 2 ans acheter des objets.
    les clients sont dans la table client et la achats dans la table achats.
    voici ma requete mais il m'affiche tout et je ne voit pas ou est ma faute.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT *
    FROM T_Clients, T_achat
    WHERE ((([T_Clients].[No_client]) Not In (select no_CF from T_achat where Date = Year(Date())-2)));
    Pouvez vous m'aider svp
    merci

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2007
    Messages : 17
    Par défaut
    Allô,
    Je ne comprend pas pourquoi tu n'exécutes pas une instruction DELETE au lieu d'un SELECT. Après tout, tu désires supprimer les clients, et non en obtenir la liste, n'est-ce pas ?
    Du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    DELETE FROM T_Clients 
    WHERE ((([T_Clients].[No_client]) NOT IN (SELECT no_CF FROM T_achat
    WHERE Date = Year(Date())-2)));

  3. #3
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    3 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : consultant développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 040
    Par défaut
    Bonjour,

    Déjà ne pas utiliser Date comme nom de champ d'une table car c'est un nom réservé (déjà par la fonction publique date )

    Puis essaie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT *
    FROM T_Clients
    WHERE ((([T_Clients].[No_client]) NOT IN (SELECT no_CF FROM T_achat WHERE Year(DateAchat) <=  Year(Date())-2)));
    Pas testée.

    PS : Pour Mary : vaut mieux faire un SELECT avant le DELETE que le contraire ...

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    244
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2005
    Messages : 244
    Par défaut
    j'ai essayer et a me donne tout les clients de la table que j'ai actuellement donc il ne trie pas en fonction de la date que je lui donne cad 2 ans avant la date d'auj.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2007
    Messages : 17
    Par défaut
    La fonction AjDate te serait peut-être utile dans ce cas !
    Dans ta condition WHERE, tu devrais vérifier à ce que ta date soit plus petite qu'à la date du jour, moins 2 ans.
    Ça devrait donner quelque chose comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE DateAchat <DateAdd('yyyy',-2,Date())));
    Ici, la fonction DateAdd utilise le paramètre 'yyyy' pour spécifier que c'est au niveau de l'année qu'on travaille, le -2 spécifie le nombre d'années que l'on veut ajouter, et Date() spécifie à quelle valeur veut-on ajouter -2 années, ici la date du jour.

    En espérant que ça fonctionne !
    Bonne chance !

  6. #6
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    3 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : consultant développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 040
    Par défaut
    1 Quel est le résultat de la requete :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT no_CF FROM T_achat WHERE Year(DateAchat) <=  Year(Date()) - 2 ;
    2 Est-ce que no_CF correspond bien à [T_Clients].[No_client] ? (notamment le type de données)

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

Discussions similaires

  1. [Dates] fonction date avec argument timestamp
    Par nicoda dans le forum Langage
    Réponses: 3
    Dernier message: 31/01/2008, 16h55
  2. [VBA]Utiliser les fonctions Excel avec Access
    Par PsykotropyK dans le forum VBA Access
    Réponses: 8
    Dernier message: 18/04/2007, 13h58
  3. [C#] Problème de Date avec Access
    Par k2vin dans le forum Accès aux données
    Réponses: 4
    Dernier message: 12/12/2006, 15h57
  4. fonction date sur Access
    Par magictom42 dans le forum Access
    Réponses: 1
    Dernier message: 06/12/2006, 10h36
  5. fonction date avec mysql
    Par yopman dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 17/09/2006, 23h15

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