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 :

Aide sur une requête SQL [AC-2013]


Sujet :

Requêtes et SQL.

  1. #1
    Futur Membre du Club
    Inscrit en
    Mars 2009
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 20
    Points : 9
    Points
    9
    Par défaut Aide sur une requête SQL
    Bonjour à tous,

    Je suis relativement nouveau dans le monde SQL, et j'aimerai profiter de votre expertise afin de m'aider à construire la bonne requête

    Pour résumer, une campagne m'a chargé de développer une BD ACCESS pour analyser ce qu'on appelle le "First contact resolution" en gros j'ai une table qui contient les éléments suivant (tickets d'appels) :

    nom des agents ; Numero client ; Date d'appel

    L'idée est de sortir les appels résolus au premier contact, avec excel j'ai réussi à appliquer les calculs qui vont avec en se basant sur les instructions ci-après (voir le link) mais maintenant avec une BD de +100k lignes c'est quasi-impossible de passer par MSEXCEL

    http://www.mrexcel.com/forum/excel-q...-question.html

    Merci d'avance,

  2. #2
    Membre éclairé
    Avatar de Didier L
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2004
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2004
    Messages : 503
    Points : 806
    Points
    806
    Par défaut
    Bonjour,

    Avec tes informations :
    nom des agents ; Numero client ; Date d'appel
    Comment sais tu si c'est un "First contact resolution" ?

    Si tu nous donne tous les champs de ta table et ta règle de gestion on pourra peut-être mieux comprendre ce que tu veux et te donner une solution

  3. #3
    Futur Membre du Club
    Inscrit en
    Mars 2009
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 20
    Points : 9
    Points
    9
    Par défaut
    Citation Envoyé par Didier L Voir le message
    Bonjour,

    Avec tes informations :


    Comment sais tu si c'est un "First contact resolution" ?

    Si tu nous donne tous les champs de ta table et ta règle de gestion on pourra peut-être mieux comprendre ce que tu veux et te donner une solution
    Hello Didier,

    merci pour ton retour, je ne sais pas si t'as eu le temps de regarder le liens et la demande du gars, ça résume un peu mon besoin , sauf que là faudrait que je passe par access au lieu d'excel, si tu vois un peu l'idée ?

    dis moi si tu as besoin de plus de précisions et merci encore une fois

    http://www.mrexcel.com/forum/excel-q...-question.html

  4. #4
    Membre éclairé
    Avatar de Didier L
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2004
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2004
    Messages : 503
    Points : 806
    Points
    806
    Par défaut
    bonsoir,

    J'ai jeté un oeil sur ce post, mais je n'ai pas forcément le temps et l'envie de tout traduire.
    Ma question est simple, tu dis avoir trois informations dans ta table (3 colonnes) pour un ticket d'appel :
    nom des agents ; Numero client ; Date d'appel.
    Que tu passe dans Excel ou pas, quelle est ta règle de gestion pour savoir sir suite à un appel, la solution à été donné au contact ?
    As tu un champ pour stocker ou tester cette information ?
    Ensuite il sera aisé, selon la date et le N° du client de savoir si c'est le premier appel ou pas ?
    Mais si le client appel pour un autre problème ? aura t'il le même numéro ?
    En fait tu veux gérer quoi et comment ?
    Pose ta question plus clairement

    Merci d'avance

  5. #5
    Futur Membre du Club
    Inscrit en
    Mars 2009
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 20
    Points : 9
    Points
    9
    Par défaut
    Ok, premièrement la table contient que ces 3 éléments à savoir :

    nom des agents ; Numero client ; Date d'appel.

    l'idée est de sortir les données suivantes par Nom agent :

    1. tout d'abord il faut flager les first call (premier appel) sur les 7 jours avant le contact // sur excel j'utilise tout simplement le fonction NB.SI.ENS avec conditions entre date d'appel -7 et date d'appel et je comptabilise les ligne avec 0.
    2. sur ces appels flagés faut compter le nombre des appels résolus par en gros ceux qui n'ont pas rappeler dans les 7 jours qui suivent // sur Excel j'utilise nb.si.ens du numero de tél avec conditions entre la date d'appel et la date d'appel + 7.

    j'espère que c'est bcp plus clair maintenant

    merci encore une fois.

  6. #6
    Membre éclairé
    Avatar de Didier L
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2004
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2004
    Messages : 503
    Points : 806
    Points
    806
    Par défaut
    Bonjour,

    Je ferais donc cela en deux requêtes ;-)

    La première pour trouver les "First appels":
    Requête1:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT Table2.[Num Client], Table2.[Date Appel], DCount("[Num client]","Table2","[Num Client]=" & [Num Client] & " AND [Date Appel] between #" & Format([Date Appel]-7,"mm/dd/yyyy") & "# AND #" & Format([Date Appel],"mm/dd/yyyy") & "#") AS Nbr
    FROM Table2
    WHERE (((DCount("[Num client]","Table2","[Num Client]=" & [Num Client] & " AND [Date Appel] between #" & Format([Date Appel]-7,"mm/dd/yyyy") & "# AND #" & Format([Date Appel],"mm/dd/yyyy") & "#"))=1));
    Et la seconde basée sur la première afin de ne prendre que les "first appel" sans appel dans les 7 jours suivants :
    Requête2:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT Requête1.[Num Client], Requête1.[Date Appel], DCount("[Num client]","Table2","[Num Client]=" & [Num Client] & " AND [Date Appel] between #" & Format([Date Appel],"mm/dd/yyyy") & "# AND #" & Format([Date Appel]+7,"mm/dd/yyyy") & "#") AS Nbr
    FROM Requête1
    WHERE (((DCount("[Num client]","Table2","[Num Client]=" & [Num Client] & " AND [Date Appel] between #" & Format([Date Appel],"mm/dd/yyyy") & "# AND #" & Format([Date Appel]+7,"mm/dd/yyyy") & "#"))=1));

  7. #7
    Futur Membre du Club
    Inscrit en
    Mars 2009
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 20
    Points : 9
    Points
    9
    Par défaut
    Merci beaucoup Didier,

    je check ta solution ce soir en rentrant et je te tiendrai au courant

  8. #8
    Futur Membre du Club
    Inscrit en
    Mars 2009
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 20
    Points : 9
    Points
    9
    Par défaut
    Re,

    je viens de tester les 2 requêtes, voici mes remarques, j'ai pris un exemple que j'ai suivi depuis la table source, voir les 2 captures ci dessous :

    1. Historique d'un num client depuis la table d'appel:

    comme illustré le client a rappelé 2 fois le 9/3 et le 10/3, donc son first contact c'est bien le 9

    Nom : Capture2.PNG
Affichages : 199
Taille : 5,0 Ko

    or sur les résultats de la première requête c'est le 10/3 qui s'affiche :

    Nom : Capture2.PNG
Affichages : 199
Taille : 5,0 Ko

    merci Didier pour ton aide.

  9. #9
    Membre éclairé
    Avatar de Didier L
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2004
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2004
    Messages : 503
    Points : 806
    Points
    806
    Par défaut
    Bonjour,

    Peux tu me montrer le résultat de ta requête 1 ?
    Et peux tu faire un essai aussi en ôtant le critère "=1" sur le nombre d'appel et mettre un critère sur ton N° de client afin de bien voir ce que la requête calcul ?

    Merci

  10. #10
    Futur Membre du Club
    Inscrit en
    Mars 2009
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 20
    Points : 9
    Points
    9
    Par défaut
    ci dessous le résultat de ma première requête avec la modif demandée :

    Nom : Capture3.PNG
Affichages : 134
Taille : 4,6 Ko

    Merci

  11. #11
    Membre éclairé
    Avatar de Didier L
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2004
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2004
    Messages : 503
    Points : 806
    Points
    806
    Par défaut
    Tu as du changer les critères de la requête car pour moi, avec ma syntaxe:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DCount("[Num client]","Table2","[Num Client]=" & [Num Client] & " AND [Date Appel] between #" & Format([Date Appel]-7,"mm/dd/yyyy") & "# AND #" & Format([Date Appel],"mm/dd/yyyy") & "#") AS Nbr
    Le dcount renvoie "1" pour le first appel et non "0" comme pour toi.
    Cela n'a pas beaucoup d'importance, mais dans ce cas, dans ton cas, met le critère de sélection "=0" a la place de "=1"

  12. #12
    Futur Membre du Club
    Inscrit en
    Mars 2009
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 20
    Points : 9
    Points
    9
    Par défaut
    sorry mr, mais j'ai juste réadapté la requête avec les bons nom des champs :

    ci-dessous un aperçu:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT CallsReport.Num_Client, CallsReport.DateHeure, DCount("[Num_Client]","CallsReport","[Num_Client]=" & [Num_Client] & " AND [DateHeure] between #" & Format([DateHeure]-7,"mm/dd/yyyy") & "# AND #" & Format([DateHeure],"mm/dd/yyyy") & "#") AS Nbr
    FROM CallsReport
    WHERE (((DCount("[Num_Client]","CallsReport","[Num_Client]=" & [Num_Client] & " AND [DateHeure] between #" & Format([DateHeure]-7,"mm/dd/yyyy") & "# AND #" & Format([DateHeure],"mm/dd/yyyy") & "#"))=1));

    par ailleurs le =0 me renvoi les non first

    bien à toi,

  13. #13
    Membre éclairé
    Avatar de Didier L
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2004
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2004
    Messages : 503
    Points : 806
    Points
    806
    Par défaut
    Ok

    Le soucis vient du format date
    Il faut rajouter les heure les minutes et les secondes

    Voila le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT CallsReport.Num_Client, CallsReport.DateHeure, DCount("[Num_Client]","CallsReport","[Num_Client]=" & [Num_Client] & " AND [DateHeure] between #" & Format([DateHeure]-7,"mm/dd/yyyy hh:nn:ss") & "# AND #" & Format([DateHeure],"mm/dd/yyyy hh:nn:ss") & "#") AS Nbr
    FROM CallsReport
    WHERE (((DCount("[Num_Client]","CallsReport","[Num_Client]=" & [Num_Client] & " AND [DateHeure] between #" & Format([DateHeure]-7,"mm/dd/yyyy hh:nn:ss") & "# AND #" & Format([DateHeure],"mm/dd/yyyy hh:nn:ss") & "#"))=1));

  14. #14
    Futur Membre du Club
    Inscrit en
    Mars 2009
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 20
    Points : 9
    Points
    9
    Par défaut
    Bien vu

    j'ai rectifié la 2ème requête et j'ai affiché les données par Log agent, tout est Ok maintenant.

    je rajouterai par la suite une 3ème requête pour afficher une synthèse par agent.

    tu es formidable Mr !

    Merci bcp

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

Discussions similaires

  1. demande d'aide sur une requête sql serveur
    Par PHPkoala dans le forum Développement
    Réponses: 8
    Dernier message: 30/09/2009, 15h11
  2. Aide sur une requête SQL Server
    Par Morad ISSOULGHANE dans le forum Développement
    Réponses: 4
    Dernier message: 30/09/2009, 11h58
  3. aide sur une requête sql
    Par sanach dans le forum MS SQL Server
    Réponses: 10
    Dernier message: 27/02/2008, 16h43
  4. aide sur une requête sql
    Par sanach dans le forum Développement
    Réponses: 9
    Dernier message: 17/10/2007, 20h42
  5. aide sur une requête sql
    Par sanach dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 17/10/2007, 20h42

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