2016-08-15 2 views
0
CREATE TABLE #TEMP (Date NVARCHAR(256),Pending NVARCHAR(256),Complete NVARCHAR(256) ,Total NVARCHAR(256)); 
INSERT INTO #TEMP (Date,Pending,Total) 
SELECT DISTINCT(DATEE),'','' from E_R_MainT 
GROUP BY DATEE 

UPDATE #TEMP 
SET Pending=(SELECT COUNT(R_ID) FROM E_R_MainT WHERE STATUS !='S_2' GROUP BY (CONVERT(char(10), HOD_DT ,126))) 
WHERE #TEMP.Date = (SELECT DISTINCT(DATEE) from E_R_MainT 
GROUP BY DATEE) 

UPDATE #TEMP 
SET Complete=(SELECT COUNT(R_ID) FROM E_R_MainT WHERE STATUS !='S_1' GROUP BY DATEE) 
WHERE #TEMP.Date = (SELECT DISTINCT(DATEE) from E_R_MainT 
GROUP BY DATEE) 

UPDATE #TEMP 
SET Total=(SELECT COUNT(R_ID) FROM E_R_MainT GROUP BY (DATEE)) 
WHERE #TEMP.Date = (SELECT DISTINCT(DATEE) from E_R_MainT 
GROUP BY DATEE 
SELECT * FROM #TEMP 

때이 오류가 얻을 내 쿼리를 실행 :SQL 삽입 #TEMP 테이블

". 하위 쿼리는 1 개 이상의 값이 허용되지 않는 반환"아래

내 테이블 소스를 : enter image description here

내가 기대하고이 출력 : enter image description here

,
+0

s_1 = 보류 중, s_2 = 완료 – KyLim

+0

하위 쿼리를 수동으로 확인하면 하나의 값만 반환되지만 행 중 하나만 업데이트해야합니다. –

답변

1

일부 혼란 이름으로 별개의 그룹의 필요 없음을 문제를 일으키는 실제로 쿼리의 일부분에서 나타나는 여러 이름은 실제로 동일한 열의 이름을 지정하기위한 것입니다. 당신에게서

SELECT 
    DATEE, 
    SUM(CASE WHEN Status = 's_1' THEN 1 ELSE 0 END) as Pending, 
    SUM(CASE WHEN Status = 's_2' THEN 1 ELSE 0 END) as Complete, 
    COUNT(*) 
FROM E_R_MainT 
GROUP BY DATEE 
0

이 부분은 .. 당신을 위해

WHERE #TEMP.Date = (SELECT DISTINCT(DATEE) from E_R_MainT 
GROUP BY DATEE) 

변경 to..below, 나는 의심 있도록 여기에 무슨

WHERE #TEMP.Date in (SELECT (DATEE) from E_R_MainT 
+0

안녕하세요, 당신이 불행히도, 동일한 오류 – KyLim

+0

작업하지 않는 코드를 시도 그게 내가 당신을 위해 쿼리를 기반으로 준 샘플 – TheGameiswar

0

이 예제 코드 : -

여기에 임시 테이블에 대한 필요성이 없어야 단지에 적합한 골재를 사용

UPDATE #TEMP 
SET Total=(SELECT COUNT(R_ID) FROM E_R_MainT GROUP BY (DATEE)) 
WHERE #TEMP.Date = (SELECT DISTINCT(DATEE) from E_R_MainT 
GROUP BY DATEE 
SELECT * FROM #TEMP 

SELECT COUNT(R_ID) FROM E_R_MainT GROUP BY (DATEE)) 
WHERE #TEMP.Date = (SELECT DISTINCT(DATEE) from E_R_MainT 
GROUP BY DATEE 
의 내용

은 하나만 반환됩니다. 둘 이상의 값을 반환한다고 생각합니다. 위의 모든 쿼리를 확인하십시오. 그런 식으로. 그것이 그 오류를주는 원인인지 확신합니다.

관련 문제