Il s'agit d'une database de return d'appel automatique qui stocke les commentaires des clients sur chaque question.
J'utilise SQL Server 2012 J'ai datatables suivantes dans le nom de la table [NPS_Feedback] :
CLI CallerID Customer_Account Question Feedback Date 34622968 F22141B854 400004775250 Q1 Satisfie 2016-03-25 34622968 F22141B854 400004775250 Q2 Not Satisfied 2016-03-25 34622968 F22141B854 400004775250 Q3 Not Satisfied 2016-03-25 30227453 GED903EDL 400001913180 Q1 Not Satisfied 2016-03-25 30227453 GED903EDL 400001913180 Q2 Satisfied 2016-03-25 30227453 GED903EDL 400001913180 Q3 Not Satisfied 2016-03-25 34622968 DAED19FDE 400004775250 Q1 Satisfied 2016-03-25 34622968 DAED19FDE 400004775250 Q2 Satisfied 2016-03-25 34622968 DAED19FDE 400004775250 Q3 Satisfied 2016-03-25
S'il vous plaît aidez-moi avec la sortie de désir suivante pour les rapports en utilisant la procédure SQLstored:
CLI CallerID Customer_Account Q1 Q2 Q3 Date 34622968 F22141B854 400004775250 Satisfied Not-Satisfied Not-Satisfied 2016-03-25 30227453 GED903EDL 400001913180 Not-Satisfied Satisfied Not-Satisfied 2016-03-25 34622968 DAED19FDE 400004775250 Satisfied Satisfied Satisfied 2016-03-25
Notez s'il vous plaît:
L'identification de l'appelant est unique ici pour chaque appel.
En plus d'utiliser la command PIVOT
, vous pouvez également utiliser l'agrégation conditionnelle:
SELECT CLI, CallerID, Customer_Account, Q1 = MAX(CASE WHEN Question = 'Q1' THEN Feedback END), Q2 = MAX(CASE WHEN Question = 'Q2' THEN Feedback END), Q3 = MAX(CASE WHEN Question = 'Q3' THEN Feedback END), Date FROM NPS_Feedback GROUP BY CLI, CallerID, Customer_Account, Date
DÉMO EN LIGNE
Une simple requête PIVOT fonctionnera.
select CLI,CallerID,Customer_Account, [Q1],[Q2],[Q3], Date from ( select CLI,CallerID,Customer_Account,Question,Feedback,Date from [NPS_Feedback] )s pivot ( max(Feedback) for Question in ([Q1],[Q2],[Q3]) ) p