database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
ㆍMS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
MS-SQL Q&A 4012 게시물 읽기
No. 4012
하위 쿼리에서 값을 둘 이상 반환 에러 어떻게 처리해야하나요?
작성자
임상혁
작성일
2008-01-28 20:49ⓒ
2008-01-28 21:09ⓜ
조회수
4,141

select
 SUBSTRING('0000000000' ,1, 10 - LEN( CONVERT (VARCHAR, CONVERT(INT, ISNULL(SUM(I.EduAmnt), 0) + ISNULL(K.PersonEduExp, 0) +ISNULL( K.DisabledExp, 0) - @Bu_Education - @Bu_EducationEtc)))) + CONVERT (VARCHAR ,CONVERT(INT, ISNULL(SUM(I.EduAmnt), 0) + ISNULL(K.PersonEduExp, 0) +ISNULL( K.DisabledExp, 0) - @Bu_Education - @Bu_EducationEtc))
 

FROM #CRecord C
        LEFT JOIN TmInfoMaster B ON B.SiteCode = @SiteCode AND B.PropertyCode = '112' AND @calYear+'1231'  BETWEEN B.StartDate       AND B.EndDate
       LEFT JOIN SiteMaster D ON B.SiteCode = D.SiteCode 

       LEFT JOIN hrSettlementMaster K ON C.EmpCode = K.EmpCode 
        LEFT JOIN (
                          SELECT A.EmpCode, ISNULL(A.DisabledNum, 0) AS DisabledNum, ISNULL(B.DisableCnt, 0) AS DisableCnt        
                           FROM hrSettlementMaster A
                           LEFT JOIN ( 
                                             SELECT SiteCode, EmpCode, SettleDate, COUNT(DisableDeduction) AS DisableCnt
                                             FROM hrSupportFamily
                                             WHERE SiteCode = @SiteCode AND SettleDate = @calYear AND DisableDeduction = 'Y'
                                             GROUP BY SiteCode, EmpCode, SettleDate
                                           ) B ON   B.SiteCode =@SiteCode AND A.EmpCode = B.EmpCode AND A.DefineYear = B.SettleDate+'12'    
                           WHERE A.ComCode = @ComCode AND  A.DefineYear =  @calYear + '12' AND A.EmpCode = @EmpCode AND                    ISNULL(A.DisabledNum, 0) > ISNULL(B.DisableCnt, 0) AND A.EmpCode = @EmpCode--and A.SettleGubun = N'200'  
                         ) E ON C.EmpCode = E.EmpCode

================================================================================================================================

hrSettlementMaster 테이블에서  필요한 데이트를 select하기 위해서
LEFT JOIN hrSettlementMaster K ON C.EmpCode = K.EmpCode 부분을 추가를 했습니다. 
그런데 실행을 하면 
경고: 집계 또는 다른 SET 연산에 의해 Null 값이 제거되었습니다.
서버: 메시지 512, 수준 16, 상태 1, 줄 1
하위 쿼리에서 값을 둘 이상 반환했습니다. 하위 쿼리 앞에 =, !=, <, <= , >, >= 등이 오거나 하위 쿼리가 하나의 식으로 사용된 경우에는 여러 값을 반환할 수 없습니다.
문이 종료되었습니다.
에러가 발생합니다.
밑에 hrSettlementMaster A  이테일블과 출동나는거 같은데 어떻게 할 방법이 없을까요?

[Top]
No.
제목
작성자
작성일
조회
4015mssql 저장 프로시져에 사용되는 암호화 기법에 대해 질문 드립니다. [1]
이승봉
2008-01-29
3622
4014트랜잭션을 안잡는경우는 어떤경우들이?? [1]
와니
2008-01-29
3079
4013datename(day,getDate()) 하면 [1]
응서방
2008-01-29
3208
4012하위 쿼리에서 값을 둘 이상 반환 에러 어떻게 처리해야하나요?
임상혁
2008-01-28
4141
4010테이블 최적화 어떻게 하나요? [1]
강성민
2008-01-28
3377
4009시퀀스 생성시 dirty read 발생.... [1]
나니
2008-01-28
3582
4008정렬질문입니다. [1]
초보
2008-01-28
3734
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.016초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다