테이블
scode char(4) 거래처코드
bcode char(4) 상품코드
chk1 char(1) 주문1 체크
su1 int
chk2 char(1) 주문2 체크
su2 int
chk3 char(1) 주문3 체크
su3 int
chk4 char(1) 주문4 체크
su4 int
상품 납품시에 주문체크에 'T' 표시
예) 1차 납품시 주문1 'T'가 입력
조건 : 거래처별로 집계 group by scode 사용
select a_scode, sum(su1) + sum(su2) + sum(su3) +
sum(su4) as Tot (총주문집계), 총공급(주문체크가 'T' 인것만 집계), 총미공급(주문체크가 'F' 인것만 집계)
from TableName group by scode
sql server 2000 server 사용하고 있습니다. 아시는 분 부탁 좀 드리 겠습니다.
질문사항이 주문체그가 'T'인것의 합과 'F'인것의 합을 구하고 싶은거죠?
SELECT A.SCODE
,A.TOT (총주문집계)
,B.TOT_T(주문체크T인집계)
,C.TOT_T(주문체크F인집계)
FROM (SELECT SCODE
,SUM(S1) + SUM(S2) + SUM(S3) + SUM(S4) AS TOT
FROM TABLENAME
GROUP BY SCODE) A
,(SELECT SCODE
,SUM(S1) + SUM(S2) + SUM(S3) + SUM(S4) AS TOT_T
FROM TABLENAME
WHERE 주문1체크 = 'T'
AND 주문2체크 = 'T'
AND 주문2체크 = 'T'
AND 주문2체크 = 'T'
GROUP BY SCODE) B
,(SELECT SCODE
,SUM(S1) + SUM(S2) + SUM(S3) + SUM(S4) AS TOT_F
FROM TABLENAME
WHERE 주문1체크 = 'F'
AND 주문2체크 = 'F'
AND 주문2체크 = 'F'
AND 주문2체크 = 'F'
GROUP BY SCODE) C
WHERE A.SCODE(*) = B.SCODE
AND A.SCODE(*) = C.SCODE
MS_SQL은 책만 조금보다 말아서 함수를 잘 모르겠네요 ^^
주문체크 T,F 합계가 NULL인 경우는 값을 0으로 바꾸시면 되겠죠
그래서 OUT JOIN으로 했습니다.
답이 될련지 모르겠네요