2016-10-24 3 views
0

설명하는 방법을 알지 못하기 때문에이 부분을 알려주십시오.하지만 여전히 최선을 다할 것입니다. TY여러 기준 업데이트

나는 2 개의 테이블을 가지고 있습니다.

enter image description here

나는 3 개 기준을 가지고 있고 나는 업데이트 내가 항목을 선택 테이블 Items 매번이 포함 것을 VB.Net에서 프로그램을

Reviewed Partially Selected Fully Selected

있습니다 나는 항상 예를 들어 Peanut을 선택하면 출력이 이렇게됩니다.

enter image description here

지금 나는 당신이 Trans No 봤어, 다음 열 added도 이제 여기

내 질문은 테이블 Items 업데이트됩니다 항목을 선택하면 계속하면? 그들은 두 테이블 모두에서 그것의 열입니다. 내 질문에 added 컬럼을 기반으로 테이블 PR을 어떻게 업데이트 할 수 있습니까? 여기

여전히 yes는 거기에있는 상태는 모든 항목이 선택되지만하지 2.If 표 PR

Fully Selected이다 동일한 TransNo 모든 항목 설치 1.

다음 선택 기준이다 어떤 항목이 선택되지 3.If는 Added 열이 다음 표 PR의 상태가 부분적으로

을 선택/ Added 테이블에 yes는 PR의 상태없습니다 0

4. 항목이 1(one) 인 경우에만 가능합니까? 3 가지 기준을 어떻게 적용 할 수 있습니까?

어떻게 만들 수 있습니까? 미래에 대한

TYSM는

답변

0

내가 PR 테이블을 업데이트 할 items 테이블에 triggers를 사용하는 것이 도움이됩니다. 레코드가 items 테이블에 삽입 된 후 필드를 yes으로 설정하면 after updateafter delete 트리거 만 사용하고, 그렇지 않은 경우 after insert을 사용합니다.

트리거 중 하나를 표시 하겠지만이 예제를 기반으로 다른 트리거를 만들 수 있습니다. 또한 논리가 거의 동일 할 것이므로 트리거를 호출 할 수있는 저장 프로 시저로 논리를 이동하는 것을 고려할 것입니다.

아래의 코드로 ... 같은 TransNo와 항목 테이블의 레코드 수를 계산하고 추가가 yes로 설정되는 경우 동일한에 대한 기록을 계산하고이 개 변수 (`선택에이 번호를 할당 .. 선언문).

그런 다음 if 문에서 설명하는 논리에 따라 상태 텍스트가 결정됩니다.

마지막으로이 레코드가 이미 존재한다고 가정하고 PR 테이블의 상태 필드가 업데이트됩니다. PR 테이블의이 레코드가 없을 경우 코드를 확장해야합니다.

delimiter // 
create trigger items_added_after_update after update on items 
for each row 
begin 
    declare all_count int; 
    declare yes_count int; 
    declare status_text varchar(20); 

    select count(TransNo), count(if(added='Yes',1,null)) into all_count, yes_count 
    from items where TransNo=NEW.TransNo; 
    if all_count=yes_count then set status_text='Fully Selected'; 
    elseif yes_count=0 then set status_text='Reviewed'; 
    else set status_text='Partially Selected'; 
    end if; 

    update PR set PR.status=status_text where PR.TransNo=NEW.TransNo; 
end // 
delimiter ; 
+0

나는 모두 선생님이 당신을 사랑한다고 말할 수 있습니다. <3 농담하는 것은 TYSM 프로처럼 작동합니다.이 코드를 처음 접하게됩니다. TYSM –