액세스 DB 쿼리 - 특정 레코드를 업데이트하는 데 도움이 필요합니다

StackOverflow https://stackoverflow.com/questions/496483

  •  20-08-2019
  •  | 
  •  

문제

티켓을 추적하는 데 사용하는 액세스 DB가 있습니다. 각 티켓은 해당 티켓과 관련된 프로그래밍 변경으로 인해 여러 차례 발생할 수 있습니다. 각 레코드에는 SVR 또는 VB 인 program_type 필드도 있습니다. 예시:

123456 - SVR - SomeCode

123456 - VB - SomeVBCode

VB_FLAG라는 데이터베이스에 열을 추가했습니다. VB 코드가 포함 된 모든 티켓에 대해 기본값이 0으로 표시됩니다. 따라서 여기서 결과는 다음과 같습니다.

123456 - SVR - SomeCode - 1

123456 - VB - SomeVBCode - 1

그러나이 업데이트 쿼리를 작성하는 방법을 제 삶에 대해 알 수 없습니다. 처음에 나는 시도했다 :

UPDATE table SET VB_Flag = 1 WHERE program_type = 'VB'

그러나 그것은 분명히 VB 코드와 티켓 번호를 공유 한 모든 SVR 코드를 제외했습니다.

나는 손실 중입니다. 돕다?

도움이 되었습니까?

해결책

이것은 작동해야합니다 :

UPDATE table SET VB_Flag = 1 
WHERE TicketNum IN (SELECT TicketNum FROM Table WHERE program_type = 'VB')

다른 팁

당신은 다음과 같은 일을 할 수 있습니다 :

UPDATE tickets SET VB_Flag = 1
WHERE ticket_id IN (SELECT ticket_id FROM tickets WHERE program_type = 'VB');

내부 선택 문은 'vb'의 program_type가있는 모든 ticket_ids의 목록을 반환합니다.

그런 다음 업데이트는 Ticket_ids 중 하나 인 모든 레코드에 대해 vb_flag를 1로 설정합니다 (여기에는 'SVR'의 프로그램이 포함됩니다.

테이블 내부 조인 테이블에서 표 2로 표 2로 테이블을 테이블 .ticketNumber = table2.ticketNumber set table2.vb_flag = 1 여기서 (([테이블]. [program_type] = "vb"))

간단한 중첩 선택이 문제를 처리해야합니다.

UPDATE myTable
SET VB_Flag = 1 
WHERE TicketID in (Select TicketID from myTable WHERE program_type = 'VB')
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top