각각의 날짜마다 합계를 다른테이블에다가 업데이트를 해야 하는데..
SUM(A.ST_IV_AMT + a.NST_IV_AMT)
FROM M_GRADING_DTL A
INNER JOIN M_IV_HDR B ON B.IV_NO = A.IV_NO
WHERE B.IV_DT BETWEEN '20140101' AND '20141231' <--각각의 날짜별로
AND a.BP_CD='11-0009'
GROUP BY B.IV_DT
이쿼리를
UPDATE M_IV_HDR <--이테이블에 업데이트
SET TOT_IV_AMT
에다가 붙여야 하는데 문법이 어떻게 되죠? 그냥 붙이면 GROUP BY B.IV_DT 에서 에러가 생기는데요..
Comment 5
-
항해자™
2016.02.20 20:53
-
큘러
2016.02.22 14:21
cteSum as (select B.IV_DT, SUM(A.ST_IV_AMT + a.NST_IV_AMT) as summary <--여기서 as 에러가 납니다. 제가 초보라서..
FROM M_GRADING_DTL A
INNER JOIN M_IV_HDR B ON B.IV_NO = A.IV_NO
WHERE B.IV_DT BETWEEN '20140101' AND '20151231'
AND a.BP_CD='09-0009'
GROUP BY B.IV_DT
)
update a
set a.TOT_IV_AMT = b.summary
from m_iv_hdr as a
inner join cteSum as b
on b.iv_dt = a.iv_dt
-
Terry
2016.02.22 17:09
구문상 문제될게 없어보입니다.
;with cteSum as (
select iv_dt, SUM(A.ST_IV_AMT + a.NST_IV_AMT) as summary
FROM M_GRADING_DTL A
INNER JOIN M_IV_HDR B ON B.IV_NO = A.IV_NO
WHERE B.IV_DT BETWEEN '20140101' AND '20141231' <--각각의 날짜별로
AND a.BP_CD='11-0009'
GROUP BY B.IV_DT
)
update a
set a.컬럼 = b.summary
from m_iv_hdr as a
inner join cteSum as b
on b.iv_dt = a.iv_dt;with cteSum as (
1. 저 부분에서 에러가 나는거라면?-> DB 호환성 설정으로 인한 부분이니
with cteSum as (
로 수정후 재실행
2. with 구문 자체에서 에러가 난다면?
-> MSSQL 버전 확인필요
A) 2000 이하 버전이라면? WITH 구문 적용안됨..임시테이블 생성 및 INSERT 후 사용해야함
B) 2005 이상 버전이라면? 위의 1. 을 확인
그리구 추가로, 어디서 에러가 난다
라고 하면? 알수 있는 사람이 없습니다.
질문을 하실 경우에는
오류 구문 전체 텍스트를 복사 -> 붙여넣기 해주시던지
아니면 캡쳐하셔서 화면이라도 보여주셔야 어떤 오류인지 파악해서
도움드릴수 있어요.
가급적 상세하게 오류내역이나 질문글을 작성해주시면
다른분들이 도움주시기 수월할듯요.
-
항해자™
2016.02.22 22:11
;
update a
set a.컬럼 = b.summary
from m_iv_hdr as a
inner join (
select iv_dt, SUM(A.ST_IV_AMT + a.NST_IV_AMT) as summary
FROM M_GRADING_DTL A
INNER JOIN M_IV_HDR B ON B.IV_NO = A.IV_NO
WHERE B.IV_DT BETWEEN '20140101' AND '20141231' <--각각의 날짜별로
AND a.BP_CD='11-0009'
GROUP BY B.IV_DT) as b
on b.iv_dt = a.iv_dt -
큘러
2016.02.23 10:32
감사합니다. 잘이해했습니다. 많이 배웠네요...수고들 하세요.
select iv_dt, SUM(A.ST_IV_AMT + a.NST_IV_AMT) as summary
FROM M_GRADING_DTL A
INNER JOIN M_IV_HDR B ON B.IV_NO = A.IV_NO
WHERE B.IV_DT BETWEEN '20140101' AND '20141231' <--각각의 날짜별로
AND a.BP_CD='11-0009'
GROUP BY B.IV_DT
)
update a
set a.컬럼 = b.summary
from m_iv_hdr as a
inner join cteSum as b
on b.iv_dt = a.iv_dt