以下是我的桌子的一部分。
Response Date Booking ID Supplier CSAT Customer Effort
2017-02-18 14:00:00.000 76579481 NULL 77.00 2.00
2017-02-18 14:00:00.000 76579481 NULL 77.00 2.00
2017-02-18 14:00:00.000 76579481 NULL 77.00 2.00
2017-02-18 14:00:00.000 76579481 NULL 77.00 2.00
如您所见,以上数据(客户调查结果记录)是重复的,因为每次客户与我们联系时都会创建一行。如果响应日期相同,我只想在每个预订ID中显示1行,因为这些记录是重复的,但是具有不同响应日期的记录是有效的,因为客户可以多次填写调查结果,但不能在同一日期执行。以下是我的查询。
SELECT
cx.review_date AS [Response Date],
cx.fk_reservation AS [Booking ID],
ca.company_name AS [Supplier],
CAST(AVG(cx.csat_score) AS DECIMAL(5, 2)) AS [CSAT],
CAST(AVG(cx.ces_score) AS DECIMAL(5, 2)) AS [Customer Effort],
nps_score,
CC.comments AS [Customer Feedback],
rr.Country_ID AS [Pickup Country],
rr.citizen_country_code AS Residency,
cx.location_name AS [Pick-up Location],
contractInfo.businessType AS [Business],
G.LABEL_YYYY_MM_DD AS [Contact Date],
G.BUSINESS_RESULT AS [Contact Reason],
G.MEDIA_NAME AS [Contact Type],
cl.Client_Name AS [Partner],
cx.staff_id
FROM
[Koios].[dbo].CCE_CXReview_Data cx WITH (READUNCOMMITTED)
LEFT JOIN
reservation_reporting AS rr WITH (READUNCOMMITTED)
ON rr.Ref = cx.fk_reservation
LEFT JOIN
Car_Agents AS ca WITH (READUNCOMMITTED)
ON ca.car_agent_id = cx.car_agent_id
LEFT JOIN
Client cl WITH (READUNCOMMITTED)
ON cx.parent_id = cl.parent_id
LEFT JOIN
reservation_contract_info contractInfo WITH (READUNCOMMITTED)
ON contractInfo.fk_reservation = rr.ref
LEFT JOIN
CX_Customer_Comments CC WITH (READUNCOMMITTED)
ON CC.fk_reservation = cx.fk_reservation
LEFT JOIN
[Genesys].[dbo].[VA_Genesys] G WITH (READUNCOMMITTED)
ON G.CASE_ID = rr.Reservation_ID
LEFT JOIN
[Genesys].[dbo].EXP_INTERACTION_RESOURCE_FACT I WITH (READUNCOMMITTED)
ON I.INTERACTION_RESOURCE_ID = G.INTERACTION_RESOURCE_ID
LEFT JOIN
[Genesys].[dbo].EXP_DATE_TIME D WITH (READUNCOMMITTED)
ON I.START_DATE_TIME_KEY = D.DATE_TIME_KEY
WHERE
rr.reservation_status <> '4'
AND rr.Dropoff_date
BETWEEN '2018-01-01' AND '2018-07-31'
GROUP BY
cx.review_date,
ca.company_name,
cx.fk_reservation,
rr.Country_ID,
rr.citizen_country_code,
cx.location_name,
CC.comments,
contractInfo.businessType,
G.LABEL_YYYY_MM_DD,
G.BUSINESS_RESULT,
G.MEDIA_NAME,
cl.Client_Name,
nps_score,
cx.staff_id;
到目前为止,我还没有运气。我将不胜感激任何帮助。谢谢。
答案 0 :(得分:0)
我看到的问题是您在GroupBy中放置了太多列
尝试这样的事情
SELECT
cx.review_date AS [Response Date],
cx.fk_reservation AS [Booking ID],
MAX(ca.company_name) AS [Supplier],
CAST(AVG(cx.csat_score) AS DECIMAL(5, 2)) AS [CSAT],
CAST(AVG(cx.ces_score) AS DECIMAL(5, 2)) AS [Customer Effort],
MAX(nps_score),
MAX(CC.comments) AS [Customer Feedback],
MAX(rr.Country_ID) AS [Pickup Country],
MAX(rr.citizen_country_code) AS Residency,
MAX(cx.location_name) AS [Pick-up Location],
MAX(contractInfo.businessType) AS [Business],
MAX(G.LABEL_YYYY_MM_DD) AS [Contact Date],
MAX(G.BUSINESS_RESULT) AS [Contact Reason],
MAX(G.MEDIA_NAME) AS [Contact Type],
MAX(cl.Client_Name) AS [Partner],
MAX(cx.staff_id)
FROM
[Koios].[dbo].CCE_CXReview_Data cx WITH (READUNCOMMITTED)
LEFT JOIN
reservation_reporting AS rr WITH (READUNCOMMITTED)
ON rr.Ref = cx.fk_reservation
LEFT JOIN
Car_Agents AS ca WITH (READUNCOMMITTED)
ON ca.car_agent_id = cx.car_agent_id
LEFT JOIN
Client cl WITH (READUNCOMMITTED)
ON cx.parent_id = cl.parent_id
LEFT JOIN
reservation_contract_info contractInfo WITH (READUNCOMMITTED)
ON contractInfo.fk_reservation = rr.ref
LEFT JOIN
CX_Customer_Comments CC WITH (READUNCOMMITTED)
ON CC.fk_reservation = cx.fk_reservation
LEFT JOIN
[Genesys].[dbo].[VA_Genesys] G WITH (READUNCOMMITTED)
ON G.CASE_ID = rr.Reservation_ID
LEFT JOIN
[Genesys].[dbo].EXP_INTERACTION_RESOURCE_FACT I WITH (READUNCOMMITTED)
ON I.INTERACTION_RESOURCE_ID = G.INTERACTION_RESOURCE_ID
LEFT JOIN
[Genesys].[dbo].EXP_DATE_TIME D WITH (READUNCOMMITTED)
ON I.START_DATE_TIME_KEY = D.DATE_TIME_KEY
WHERE
rr.reservation_status <> '4'
AND rr.Dropoff_date
BETWEEN '2018-01-01' AND '2018-07-31'
GROUP BY
cx.review_date,
cx.fk_reservation;