Skip to main content

Une requête SQL complexe pour l'évaluation des tâches

Veuillez noter que la création d'un rapport nécessite des connaissances SQL avancées selon l'étendue. Comme l'évaluation des tâches est toujours spécifique au client, vous ne pouvez pas utiliser directement la requête SQL. Elle doit uniquement vous servir de modèle pour vos futures évaluations personnelles.

Les parties de la requête SQL qui doivent être modifiées sont surlignées en jaune.

Les commentaires commencent par deux tirets et sont colorés en vert.

Les remarques particulières dans la requête SQL sont surlignées en turquoise.

with result as ( SELECT m.Name, m.Numéro du collaborateur, m.superviseur, kp.Numéro de client ,(SELECT count(distinct b.Numéro de client) FROM DeDeSales_Besuchsberichte b WHERE kp.Numéro de client = b.Numéro de client and convert(date,b.Fin de la visite) between convert(date,job.GueltigVon) and convert(date,job.GueltigBis)) as Visites -- 1. ici lister les colonnes de la tâche (jobresult.NOM_DE_COLONNE/ID DE LA QUESTION). Par ISNULL on indique la valeur par défaut pour toutes les tâches non encore traitées. Dans ce cas Clore la commande_Non ou 0 ,ISNULL(jobresult.ID_DE_QUESTION_1,'Clore la commande_Non') as Question_1 ,ISNULL(jobresult.ID_DE_QUESTION_2,0) as Question_2 ,ISNULL(jobresult.ID_DE_QUESTION_3,0) as Question_3 ,ISNULL(jobresult.ID_DE_QUESTION_4,0) as Question_4 FROM DeDeQuery_Queries job inner join DeDeQuery_KundendatenQueryObjektRelation jobrel on job.Guid = jobrel.QueryGuid inner join DeDeSales_Listes de clients kl on jobrel.ExterneReferenz = kl.Guid inner join DeDeSales_PositionsClients kp on kl.guid=kp.referenzguid inner join DeDeSales_Responsables z on z.Numéro de client = kp.Numéro de client inner join DeDeSales_Collaborateur m on z.Numéro du collaborateur = m.Numéro du collaborateur -- 2. après ddqReport_ insérer ici l'ID DE LA TÂCHE left join DeDeQuery__ddqReport_IDDELATACHE jobresult on kp.Numéro de client = jobresult.ddq_ReferenzID -- 3. insérer ici aussi l'ID DE LA TÂCHE where job.ID='ID_DE_LA_TACHE_A_INSERER' and m.Type=5 ) select m.Name as superviseur, x.* from ( select Name, superviseur, Numéro du collaborateur, count(Numéro de client) as Univers_Tâches ,sum(Visites) as Visites -- 5. ici se fait la préparation de la tâche. La ligne suivante compte certaines réponses, les trois autres lignes additionnent les entrées. ,(SELECT count(*) FROM result WHERE Question_1='Clore la commande_Oui' and Name=r.Name) as Question_1 ,sum(Question_2) as Question_2 ,sum(Question_3) as Question_3 ,sum(Question_4) as Question_4 from result r group by Name, r.Numéro du collaborateur, r.superviseur having count(Numéro de client)>0 ) x left join DeDeSales_Collaborateur m on m.Numéro du collaborateur=x.superviseur order by m.Name, x.Name