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 :

Etat avec une case à cocher sur une requête difficile


Sujet :

Requêtes et SQL.

  1. #1
    Membre à l'essai
    Inscrit en
    Novembre 2003
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 33
    Points : 24
    Points
    24
    Par défaut Etat avec une case à cocher sur une requête difficile
    Bonjour,

    Je cherche à faire un état avec une case à cocher.

    Voilà la situation de départ dans une propspection commerciale:

    une table contact ( N° contact, Nom contact, Prénom contact.....)
    une table recoit_mailing (N° contact, jj_mm_aaaa)
    une table date ( jj_mm_aaaa)

    je cherche à faire un état où tous les contacts de la table contact apparaissent avec une case cochée si le contac a reçu un mailing.

    Quelle requête faire pour pouvoir indexer la case à cocher si le mail a été envoyé ?

    Comment dans l'état indexé la case à cocher ?

    Par avance Merci . MarcoO !

  2. #2
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    Bonjour

    Si la question est juste "ceux qui ont déjà reçu un mailling" alors

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT T.*, EXISTS (SELECT 1 FROM reçoit_mailling WHERE N°Contact=T.N°Contact) AS RECU
    FROM contact T;
    Ou bien encore


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT DISTINCT T.*, Not IsNull([jjmmaaaa]) AS RECU
    FROM contact AS T LEFT JOIN reçoit_mailling ON T.N°Contact = reçoit_mailling.N°Contact;

    Si la question est :

    Liste des dates de mailing et cocher les contacts qui ont reçu un mailling ce jour :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT R01.NomContact, R01.PrenomContact, R01.N°Contact, R01.jjmmaaaa, Not IsNull([reçoit_mailling].[jjmmaaaa]) AS RECU
    FROM (SELECT tblDate.jjmmaaaa, contact.NomContact, contact.PrenomContact, contact.N°Contact
    FROM contact, tblDate) R01
     LEFT JOIN reçoit_mailling ON (reçoit_mailling.jjmmaaaa=R01.jjmmaaaa) AND (R01.N°Contact=reçoit_mailling.N°Contact);
    Si la question est : cocher les contacts ayant reçu un mailing tel jour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT contact.*, NOT  ISNULL( T.N°Contact) as RECU
    FROM contact LEFT JOIN (SELECT * FROM reçoit_mailling WHERE jjmmaaaa=Date) T ON contact.N°Contact = T.N°Contact
    Si la question est ...

    Essayez d'être précis en posant vos questions en donnant des exemples.

    Et utilisez les assistants, un telle requête prend pas plus de 30 secondes à réaliser

  3. #3
    Membre à l'essai
    Inscrit en
    Novembre 2003
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 33
    Points : 24
    Points
    24
    Par défaut
    Merci d'avoir répondu aussi parfaitement.

    J'ai effectivement manqué de clarté.

    Je cherche à savoir quels sont les contacts qui ont reçu un mail de prospection. (il est vrai qu'au cours des années on peut lui réenvoyer un mail et que la date peut être utile)

    Cependant je garderais la première requête à savoir :

    SELECT T.*, EXISTS (SELECT 1 FROM reçoit_mailling WHERE N°Contact=T.N°Contact) AS RECU
    FROM contact T;

    Une fois cette requête effectuée, comment faire que la case à coché se coche sur l'état ? Faut-il programmer en VB ?

    Par avance merci . MarcoO !

  4. #4
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    Hello,

    il suffit d'attribuer comme source de donnée à ta case à cocher le champ [Recu] sur la requête que t'a fournie Tofalu.

  5. #5
    Membre à l'essai
    Inscrit en
    Novembre 2003
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 33
    Points : 24
    Points
    24
    Par défaut
    merci beaucoup

  6. #6
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    Citation Envoyé par cafeine
    Hello,

    il suffit d'attribuer comme source de donnée à ta case à cocher le champ [Recu] sur la requête que t'a fournie Tofalu.

    Je savais bien que j'avais oublié un bout de la réponse

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

Discussions similaires

  1. Switch/Case - boucle sur une case ou sur l'ensemble
    Par nevoa dans le forum Langage
    Réponses: 3
    Dernier message: 24/06/2014, 15h45
  2. liste déroulante avec une case à cocher et une image
    Par kurul1 dans le forum C++Builder
    Réponses: 4
    Dernier message: 08/03/2007, 09h54
  3. Problèmes avec des cases à cocher et une liste déroulante
    Par rob2-9 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 25/01/2006, 10h52
  4. Réponses: 4
    Dernier message: 23/01/2006, 11h28

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