테이블이 2개가 있습니다.
a테이블에는 나이,성별,인원,나이합
b테이블에는 나이,성별,이름
b테이블에 나이가 10살인사람들모두 11살로 변경해야되서 update b set 나이='11' where 나이='10'
이렇게 업데이트 하고 b테이블에 update 트리거에는 아래처럼 되어있는데 성별만 없으면 sum(나이합)로 해서 a테이블 update를 하면 되는데 성별이 있어서 남/여 따로 해당하는 컬럼에 update를 해야되는데 어떻게 해야될지 몰르겠습니다.
update문을 성별별로 where조건에 넣을수가 없어서 update트리거에서 수정을 해야됩니다.
IF(UPDATE(나이))
BEGIN
DECLARE
@U_나이 int,@U_성별 NVARCHAR(100),@U_인원 NVARCHAR(100),@U_나이합 NVARCHAR(100)
SELECT
@U_나이 = max(A.나이)
,@U_성별 = max(A.성별)
,@U_인원 = count(A.나이)
,@U_나이합 = sum(A.나이)
FROM
INSERTED A
begin
update aa1 set 나이합=@U_나이합, 인원=@U_인원 where 나이=@U_나이 and 성별=@U_성별
end
END
밑에 방식처럼 남 / 여 나눠서 해보세요.
두번 귀찮으시면 그냥 MERGE INTO 구문쓰셔도 될듯합니다.
SELECT
@U_나이 = max(A.나이)
,@U_성별 = A.성별
,@U_인원 = count(A.나이)
,@U_나이합 = sum(A.나이)
FROM INSERTED A
WHERE a.성별 = '남'
update ..
SELECT
@U_나이 = max(A.나이)
,@U_성별 = A.성별
,@U_인원 = count(A.나이)
,@U_나이합 = sum(A.나이)
FROM INSERTED A
WHERE a.성별 = '여'
update ..