두 가지 성능 메트릭을 기반으로 콜센터를 순위 지정하는 쿼리가 있습니다. 각 센터가받은 설문 조사 수를 추가하여이 쿼리를 수정하려고합니다. 나는 열을 잘못 정의하고 어디INSERT ERROR : 선택 항목이 열 정의와 일치하지 않습니다.
Insert Error: Column name or number of supplied values does not match table definition.
당신이 말해 줄 수 :
적절한 장소에서 "전체"또는 "설문 조사"열을 추가 한 후, 나는 오류가 발생입니까? 코드의 관련 부분을 게시합니다 :
IF OBJECT_ID('tempdb..#ACSResults')
IS NOT NULL DROP TABLE #ACSResults
CREATE TABLE #ACSResults (AreaID VARCHAR(4), Location VARCHAR(50), Surveys VARCHAR(6), MonthName VARCHAR(6), RepResolve FLOAT, ERP FLOAT)
INSERT INTO #ACSResults
SELECT
a.area,
a.location,
COUNT(a.IVRCallID) as Surveys,
a.monthname,
CASE WHEN SUM(CASE WHEN a.RepResolve IN ('1','0') THEN 1 ELSE 0 END) = 0 THEN NULL ELSE CAST(SUM(CASE WHEN a.RepResolve = '1' THEN 1 ELSE 0 END)AS FLOAT)/CAST(SUM(CASE WHEN a.RepResolve IN ('1','0') THEN 1 ELSE 0 END) AS FLOAT) END AS REPRESOLVE,
CASE WHEN SUM(CASE WHEN a.ERP IN ('0','1','2','3','4','5','6','7','8', '9', '10') THEN 1 ELSE 0 END) = 0 THEN NULL ELSE (CAST(SUM(CASE WHEN a.ERP IN ('8', '9', '10') THEN 1 ELSE 0 END) AS FLOAT)/CAST(SUM(CASE WHEN a.ERP in ('0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10') THEN 1 ELSE 0 END) AS FLOAT))END AS ERP
FROM (SELECT
...
acs.IVRCallID,
...
FROM dbCustomerSurvey.Detail.vwAfterCallSurvey acs
LEFT JOIN dbEmployee.Summary.vwEmployeeHistory eh ON acs.EmployeeID = eh.EmployeeID AND acs.OfferDate BETWEEN eh.StartDate AND eh.EndDate
LEFT JOIN dbEmployee.Config.vwName Rep ON eh.EmployeeID = Rep.EmployeeID
LEFT JOIN dbEmployee.Config.vwName Sup ON eh.BottomUp01ID = Sup.EmployeeID
LEFT JOIN dbEmployee.Config.vwName Mgr ON eh.BottomUp02ID = Mgr.EmployeeID
LEFT JOIN dbEmployee.Config.vwName Dir ON eh.BottomUp03ID = Dir.EmployeeID
LEFT JOIN dbEmployee.Config.vwVirtualLocation vl ON eh.VirtualLocationID = vl.VirtualLocationID
LEFT JOIN dbEmployee.Config.vwDepartment d ON eh.DepartmentID = d.DepartmentID
LEFT JOIN dbEmployee.Config.vwPeopleSoftDepartment psd ON eh.PeopleSoftDepartmentID = psd.PeopleSoftDepartmentID
WHERE acs.CurrentStatus IN ('Completed', 'COMP') and acs.surveytype IN ('ACS_FCR_Rep_Perform', 'ACS_FCR_Rep_Perform-prepaid', 'ACS_Rep_Perform_BSC2', 'ACS_Rep_Perform_Gov') AND acs.OfferDate Between @StartDate AND @EndDate) a
...
group by
a.area,
a.location,
a.monthname
--------------------------------------------------------------------------------REPEAT TABLE------------------------------------------------------------------------------------------------------
IF OBJECT_ID('tempdb..#HRRep')
IS NOT NULL DROP TABLE #HRRep
CREATE TABLE #HRRep (AreaID VARCHAR(4), Location VARCHAR(50), Surveys VARCHAR(6), MonthName VARCHAR(6), HourRepeatPercent FLOAT)
INSERT INTO #HRRep (AreaID, Location, Surveys, MonthName, HourRepeatPercent)
Select eh.AreaID, vl.VirtualLocationDescription, COUNT(acs1.IVRCallID) as Surveys, Month (acs.statdate) AS MonthName,
Cast(Sum(acs.Repeats2Hr)as float) /nullif(Sum(acs.Calls2Hr), 0) as 'HourRepeatPercent'
From dbReportSummary.ReportSummary.vwRepeatCalls2Hr acs with (NoLOCK)
LEFT JOIN dbEmployee.Summary.vwEmployeeHistory eh with (NoLOCK) ON acs.EmployeeID = eh.EmployeeID AND acs.StatDate BETWEEN eh.StartDate AND eh.EndDate
LEFT JOIN dbEmployee.Config.vwVirtualLocation vl ON eh.VirtualLocationID = vl.VirtualLocationID
LEFT JOIN dbEmployee.Config.vwDepartment d ON eh.DepartmentID = d.DepartmentID
LEFT JOIN dbEmployee.Config.vwPeopleSoftDepartment psd ON eh.PeopleSoftDepartmentID = psd.PeopleSoftDepartmentID
LEFT JOIN dbCustomerSurvey.Detail.vwAfterCallSurvey acs1 ON acs.EmployeeID=acs1.EmployeeID and acs1.OfferDate BETWEEN @StartDate and @EndDate
...
Group by eh.AreaID, vl.VirtualLocationDescription, Month (acs.statdate)
SELECT a.Location, a.Surveys, a.RepResolve, a.RRRank, a.ERP, a.ERPRank,a.HourRepeatPercent, a.RepeatRank, (a.RRRank + a.ERPRank+a.RepeatRank) as 'Total Rank Points', Rank() OVER(ORDER BY (a.RRRank + a.ERPRank+a.RepeatRank) ASC, a.RepResolve DESC) AS 'Overall Rank'
From(
SELECT a.Location, a.Surveys, a.RepResolve, Rank() OVER(ORDER BY a.RepResolve DESC) AS RRRank, a.ERP, Rank() OVER(ORDER BY a.ERP DESC) AS ERPRank, b.HourRepeatPercent, Rank() OVER(ORDER BY b.HourRepeatPercent ASC) AS RepeatRank
FROM #ACSResults AS A
Left Join #HRRep AS B on a.areaid=b.areaid and a.monthname=b.monthname and a.location=b.location and a.Surveys=b.Surveys
) a
Group BY a.Location, a.Surveys, a.RepResolve, a.RRRank, a.ERP, a.ERPRank,a.HourRepeatPercent, a.RepeatRank, (a.RRRank + a.ERPRank+a.RepeatRank)
"..."는 부적절한 이유로 삭제 된 코드 조각을 나타냅니다. 제가 충분히 게시하지 않은 경우 알려주십시오. 더 게시 할 수 있지만 과거에 게시하는 것에 대해 불만을 들었습니다.
DROP TABLE #ACSResults
DROP TABLE #HRRep
이가 "실패"라는 코드 : –
실제로'INSERT INTO #ACSResults '는 오류를 발생시킵니다. #HRRep이 관련되어 있는지 확실하지 않은 이유는 두 테이블을 하나로 합칠 것이기 때문입니다. 죄송합니다, 여기 조금 초보자입니다. – ciw916
이 코드를 실행하고 다시 시도하십시오 :'DROP TABLE #ACSResults DROP TABLE # HRRep' –