2012-11-28 2 views
0

두 가지 성능 메트릭을 기반으로 콜센터를 순위 지정하는 쿼리가 있습니다. 각 센터가받은 설문 조사 수를 추가하여이 쿼리를 수정하려고합니다. 나는 열을 잘못 정의하고 어디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 
+1

이가 "실패"라는 코드 : –

+0

실제로'INSERT INTO #ACSResults '는 오류를 발생시킵니다. #HRRep이 관련되어 있는지 확실하지 않은 이유는 두 테이블을 하나로 합칠 것이기 때문입니다. 죄송합니다, 여기 조금 초보자입니다. – ciw916

+1

이 코드를 실행하고 다시 시도하십시오 :'DROP TABLE #ACSResults DROP TABLE # HRRep' –

답변

1

다시 시도 후이 코드를 실행하고? `INSERT INTO #HRRep (AreaID, Location, Survey, MonthName, HourRepeatPercent) '
+0

감사합니다, Pabloker! 왜 HourRepeatPercent 열이 이제 null인지 내게 말할 수 있는지 궁금한가요? (정보가 #HRRep 테이블에서 호출 됨). 도둑질을해서 미안해,이 걸림돌 후에 나는 잘 갈거야. – ciw916

+0

수정 ... 알아 냈어. 모든 도움, Pabloker에 다시 한번 감사드립니다! – ciw916

+1

나는 그것을 듣게되어 기쁩니다. –

관련 문제