다른 테이블의 다른 열의 합계로 업데이트 문을 수행하려고합니다. 나는 5 개 고객을 위해 나는이가 customer_ar.current_bal를 만들기 위해 실행 테스트로 조인을 사용하여 SQL 업데이트 문을 수행하는 방법은 무엇입니까?
customer_ar.current_bal to = sum(ar_transaction.current_balance)
= 100 원하는 :
update customer_ar C
join ar_transaction T on T.customer_id=C.customer_id
set current_bal =
(select sum(current_balance)
from ar_transaction
where C.customer_id =T.customer_id)
where C.customer_id in (1502,1329,3096,1516,3605);
내가 가진 그 결과
update customer_ar
set current_bal=100
where customer_id in (1502,1329,3096,1516,3605);
다음 내가 이것을 실행 그것들 모두의 균형이 213823.85가되었다는 것입니다. 실제 현재 잔액은 고객마다 다르며 50에서 100 사이입니다.
하위 쿼리를 수행 할 수 있으며 한 번에 하나씩 만 수행하면 작동하지만, 한 번에 모든 일을 처리 할 수있는 방법. 내가 뭘 잘못하고 있는지 알아?
어떤 DBMS를 사용하고 있습니까? – cChacon
올바르게 태그를 지정하십시오. 어느 dbms ???????? 구문은 dbms와 다른 것입니다. – Eric
"SQL"은 쿼리 언어의 표준입니다. 이 표준에는 "조인으로 업데이트"할 수있는 기능이 없습니다. 그래서 ** 사용하고있는 DBMS 제품을 ** 알려주고 있습니다. 포스트그레스? Orace? –