Использование SQL для сравнения нескольких записей (строк) из одного и того же контактида в одну и ту же дату - PullRequest
0 голосов
/ 28 мая 2020

Я прошу наших пользователей заполнить форму NPS. Чаще всего один и тот же человек заполняет форму несколько раз в один и тот же день - и значения не совпадают. Есть 6 вопросов по шкале Лайкерта и один открытый вопрос обратной связи. В настоящее время мы передаем самые последние из нескольких записей из облака маркетинга в облако продаж. Задача состоит в том, чтобы проверить несколько ответов и передать самую последнюю запись, в которой БЫЛИ ответы на вопросы Лайкерта и / или вопросы обратной связи. В настоящее время код выглядит так:

SELECT 
ID, 
PL_NPSScore,
PL_Q1,
PL_Q1_Type, 
IIF(PL_Q1_Response IS NULL OR PL_Q1_Response=' ','NA',PL_Q1_Response) AS PL_Q1_Response,

PL_Q2, 
PL_Q2_Type,
IIF(PL_Q2_Response IS NULL OR PL_Q2_Response=' ','NA',PL_Q2_Response) AS PL_Q2_Response,

PL_Q3, 
PL_Q3_Type, 
IIF(PL_Q3_Response IS NULL OR PL_Q3_Response=' ','NA',PL_Q3_Response) AS PL_Q3_Response,

PL_Q4, 
PL_Q4_Type, 
IIF(PL_Q4_Response IS NULL OR PL_Q4_Response=' ','NA',PL_Q4_Response) AS PL_Q4_Response,

PL_Q5, 
PL_Q5_Type, 
IIF(PL_Q5_Response IS NULL OR PL_Q5_Response=' ','NA',PL_Q5_Response) AS PL_Q5_Response,


PL_Q6,
PL_Q6_Type, 
IIF(PL_Q6_Response IS NULL OR PL_Q6_Response=' ','NA',PL_Q6_Response) AS PL_Q6_Response,

IIF(PL_Feedback IS NULL OR PL_Feedback=' ','NA',PL_Feedback) AS PL_Feedback,
PL_NPS_SubmissionDate, 
GUID 

FROM AGT_PL_NPS_Results

WHERE
ID IS NOT NULL
AND PL_NPS_SubmissionDate >= DATEADD(day, -1, GETDATE())

Любая / вся помощь приветствуется. Я думаю, сначала нужно посмотреть дату, а затем go назад через несколько записей, чтобы увидеть, не являются ли вопросы нулевыми ИЛИ не содержат NA (значение по умолчанию, если они не отвечают)

Спасибо,

Мари PS: Я не писал приведенный выше код - а я SQL новичок ie пытаюсь выучить

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...