쿼리 문의 좀 드릴게요.

죠리퐁 2014.01.13 14:28 Views : 3041

현 A 테이블( C_CUSTINFO ) 고객사 코드, 이름

C_NAME, C_CODE 가 있습니다.

 

B(C_GOODS) 테이블엔 금액 정보(기타 여러가지)가 있습니다.

연결 필드 Y_CODE  금액 필드는 Y_AMT  입니다.

Y_DATE 는 등록날짜 DATETIME  으로 2014-01-01 형식으로 저장되어 있습니다.

저장된 정보가 있던 없던 모두 결과 값을 뿌려주기 위해서 LEFT OUTER JOIN 했습니다.

 

C(PAYMENT)  테이블엔

연결 필드 W_CODE 금액 필드는 AMT  입니다.

W_DATE 는 조회날짜 DATETIME  으로 2014-01-01 형식으로 저장되어 있습니다.

이것도 마찬가지로 정보가 있던 없던 값을 뿌려주기 위해서  LEFT OUTER JOIN 했습니다.

 

쿼리는 아래와 같습니다.

문제는 C(PAYMENT) 테이블 금액이  실제 금액 * 5  가 되어서 보여 집니다.

그래서 조인을 B 테이블을 빼고 해보면 정상적으로 나옵니다.

B 테이블,  C 테이블 정보를 모두 가져와야  하는데  * 5 로 금액이 나와서 문제 입니다.

 

 

SELECT MAX(A.c_name) c_name, A.c_code,
ISNULL(SUM(CASE WHEN DATEPART(MONTH,y_date)='1' and DATEPART(yy,y_date)='2014' THEN y_Amt END),0) AS JAN,
ISNULL(SUM(CASE WHEN DATEPART(MONTH,y_date)='2' and DATEPART(yy,y_date)='2014' THEN y_Amt END),0) AS FEB,
ISNULL(SUM(CASE WHEN DATEPART(MONTH,y_date)='3' and DATEPART(yy,y_date)='2014' THEN y_Amt END),0) AS MAR,
ISNULL(SUM(CASE WHEN DATEPART(MONTH,y_date)='4' and DATEPART(yy,y_date)='2014' THEN y_Amt END),0) AS APR,
ISNULL(SUM(CASE WHEN DATEPART(MONTH,y_date)='5' and DATEPART(yy,y_date)='2014' THEN y_Amt END),0) AS MAY,
ISNULL(SUM(CASE WHEN DATEPART(MONTH,y_date)='6' and DATEPART(yy,y_date)='2014' THEN y_Amt END),0) AS JUN,
ISNULL(SUM(CASE WHEN DATEPART(MONTH,y_date)='7' and DATEPART(yy,y_date)='2014' THEN y_Amt END),0) AS JUL,
ISNULL(SUM(CASE WHEN DATEPART(MONTH,y_date)='8' and DATEPART(yy,y_date)='2014' THEN y_Amt END),0) AS AUG,
ISNULL(SUM(CASE WHEN DATEPART(MONTH,y_date)='9' and DATEPART(yy,y_date)='2014' THEN y_Amt END),0) AS SEP,
ISNULL(SUM(CASE WHEN DATEPART(MONTH,y_date)='10' and DATEPART(yy,y_date)='2014' THEN y_Amt END),0) AS OCT,
ISNULL(SUM(CASE WHEN DATEPART(MONTH,y_date)='11' and DATEPART(yy,y_date)='2014' THEN y_Amt END),0) AS NOV,
ISNULL(SUM(CASE WHEN DATEPART(MONTH,y_date)='12' and DATEPART(yy,y_date)='2014' THEN y_Amt END),0) AS DEC,
ISNULL(SUM(CASE WHEN DATEPART(yy,y_date)='2014' THEN y_Amt END),0) AS TOTAL,
-- 여기 아래 부분 금액 계산이 실제 금액 * 5 로 나옵니다.
ISNULL(SUM(CASE WHEN DATEPART(MONTH,w_date)='1' and DATEPART(yy,w_date)='2014' THEN Amt END),0) AS S_JAN,
ISNULL(SUM(CASE WHEN DATEPART(MONTH,w_date)='2' and DATEPART(yy,w_date)='2014' THEN Amt END),0) AS S_FEB,
ISNULL(SUM(CASE WHEN DATEPART(MONTH,w_date)='3' and DATEPART(yy,w_date)='2014' THEN Amt END),0) AS S_MAR,
ISNULL(SUM(CASE WHEN DATEPART(MONTH,w_date)='4' and DATEPART(yy,w_date)='2014' THEN Amt END),0) AS S_APR,
ISNULL(SUM(CASE WHEN DATEPART(MONTH,w_date)='5' and DATEPART(yy,w_date)='2014' THEN Amt END),0) AS S_MAY,
ISNULL(SUM(CASE WHEN DATEPART(MONTH,w_date)='6' and DATEPART(yy,w_date)='2014' THEN Amt END),0) AS S_JUN,
ISNULL(SUM(CASE WHEN DATEPART(MONTH,w_date)='7' and DATEPART(yy,w_date)='2014' THEN Amt END),0) AS S_JUL,
ISNULL(SUM(CASE WHEN DATEPART(MONTH,w_date)='8' and DATEPART(yy,w_date)='2014' THEN Amt END),0) AS S_AUG,
ISNULL(SUM(CASE WHEN DATEPART(MONTH,w_date)='9' and DATEPART(yy,w_date)='2014' THEN Amt END),0) AS S_SEP,
ISNULL(SUM(CASE WHEN DATEPART(MONTH,w_date)='10' and DATEPART(yy,w_date)='2014' THEN Amt END),0) AS S_OCT,
ISNULL(SUM(CASE WHEN DATEPART(MONTH,w_date)='11' and DATEPART(yy,w_date)='2014' THEN Amt END),0) AS S_NOV,
ISNULL(SUM(CASE WHEN DATEPART(MONTH,w_date)='12' and DATEPART(yy,w_date)='2014' THEN Amt END),0) AS S_DEC,
(select wday from payment where DATEPART(MONTH,w_date)='1' and DATEPART(yy,w_date)='2014' and w_code=a.c_code) AS [1월],
(select wday from payment where DATEPART(MONTH,w_date)='2' and DATEPART(yy,w_date)='2014' and w_code=a.c_code) AS [2월],
(select wday from payment where DATEPART(MONTH,w_date)='3' and DATEPART(yy,w_date)='2014' and w_code=a.c_code) AS [3월],
(select wday from payment where DATEPART(MONTH,w_date)='4' and DATEPART(yy,w_date)='2014' and w_code=a.c_code) AS [4월],
(select wday from payment where DATEPART(MONTH,w_date)='5' and DATEPART(yy,w_date)='2014' and w_code=a.c_code) AS [5월],
(select wday from payment where DATEPART(MONTH,w_date)='6' and DATEPART(yy,w_date)='2014' and w_code=a.c_code) AS [6월],
(select wday from payment where DATEPART(MONTH,w_date)='7' and DATEPART(yy,w_date)='2014' and w_code=a.c_code) AS [7월],
(select wday from payment where DATEPART(MONTH,w_date)='8' and DATEPART(yy,w_date)='2014' and w_code=a.c_code) AS [8월],
(select wday from payment where DATEPART(MONTH,w_date)='9' and DATEPART(yy,w_date)='2014' and w_code=a.c_code) AS [9월],
(select wday from payment where DATEPART(MONTH,w_date)='10' and DATEPART(yy,w_date)='2014' and w_code=a.c_code) AS [10월],
(select wday from payment where DATEPART(MONTH,w_date)='11' and DATEPART(yy,w_date)='2014' and w_code=a.c_code) AS [11월],
(select wday from payment where DATEPART(MONTH,w_date)='12' and DATEPART(yy,w_date)='2014' and w_code=a.c_code) AS [12월]
FROM C_CUSTINFO A LEFT OUTER JOIN pay_goods B ON A.c_code = B.y_code
left outer join payment c on a.c_code = c.w_code
GROUP BY A.c_code

No. Subject Author Date Views
Notice 2023년 1월 - SQLER의 업데이트 강좌 리스트 코난(김대우) 2023.01.02 1245
7522 칼럼의 다수의 특정문자들을 일괄변경 할때 어떻게 해야 되나요? [2] 주동호 2014.01.17 3648
7521 SQL 설치 후 C 드라이브 용량 및 기타 관련 질문입니다. [2] 퍼런하늘 2014.01.16 3801
7520 insert select 시에 identity 컬럼 [1] 냥냥 2014.01.16 5005
7519 sql문 로그 기록? [5] 깨비꼬비 2014.01.16 3851
7518 SQL 질문입니다. [7] 차차리아카 2014.01.16 3336
7517 INSERT 시 DATATYPE의 길이만큼 잘라 INSERT할수 있는 방법이 있나요? [1] 수퍼그랑조 2014.01.15 3928
7516 openquery 루프돌릴수 있나요? [1] 김진석_283879 2014.01.15 3173
7515 쿼리에러 수정좀 부탁드립니다.ㅠ [1] 뽀챙 2014.01.15 3293
7514 기간검색 질문드려요ㅠ [8] 뽀챙 2014.01.14 5896
7513 KEY 가 없는 테이블의 조회속도 문제 [1] 웨퐁 2014.01.14 3054
7512 DB에서 netstat 했을때 ESTABLISHED 가 너무 많습니다. 저너노 2014.01.14 3438
7511 계산 질문 입니다. [8] ssunsori 2014.01.14 4136
7510 웹서버 <-> DB 데이터 지연현상 [2] 빌리 2014.01.14 7089
7509 간단쿼리 문의좀 드립니다. [3] 아싸라비아콜롬비아 2014.01.13 3125
» 쿼리 문의 좀 드릴게요. [2] 죠리퐁 2014.01.13 3041
7507 count(*) 에 대해서 질문 있습니다. [2] 객기 2014.01.13 2939
7506 해킹 이후 복구 [2] 혼자노는양 2014.01.13 4678
7505 소수점 문제점좀 해결좀 해주세요 선배님들.. [2] SQL왕왕초보 2014.01.10 3912
7504 bcp명령어 질문 (bulk insert)입니다. [2] sams 2014.01.10 4264
7503 자동복구 중지할 수는 없나요 ? sams 2014.01.10 3023





XE Login