2014-11-17 5 views
-1

직원 코드 (모든 PM 라인)를 해당 고객의 VP로 업데이트하는 구문을 확인할 수 있습니까?조건을 기반으로 업데이트 필드가 일치합니다.

Client Type Level Employee Code 
9702 VP  P   11 
9702 PM  P   XXXX 
9703 VP  P   12 
9703 PM  P   XXXX 

는 나는 내가이 순간에 어떤 MySQL 서버에 대한 액세스 권한이없는 것처럼

Client Type Level Employee Code 
9702 VP  P   11 
9702 PM  P   11 
9703 VP  P   12 
9703 PM  P   12 
+1

구문을 확인하려면 확인하려는 진술을 실제로 게시 한 경우 도움이 될 것입니다. – jpw

+0

죄송합니다. 나는 그 진술을 모른다. 이 문구를 참조하기 위해이 문제에서 "구문"을 사용했습니다. 나는 내가하려는 일을 평범한 영어로 기술하는 것이 더 낫다고 생각했다. – james

+0

샘플 결과의 마지막 행에 직원 코드 12가 있어야합니까? – jpw

답변

1

내가 이것을 테스트 할 수 없습니다 아래처럼해야하지만 메모리는 바로 내를 제공하는 경우

: 구문이 될 것이다 MS SQL Server의 경우

UPDATE `your_table` a 
JOIN `your_table` b ON a.`Client` = b.`Client` AND b.`Type` = 'VP' 
SET a.`Employee Code` = b.`Employee Code` 
WHERE a.`Type` = 'PM' 

: MySQL의 구문은 다음과 같이 될 것이다 조인 된 테이블에서 업데이트

UPDATE a 
SET [Employee Code] = b.[Employee Code] 
FROM your_table a 
JOIN your_table b ON a.Client = b.Client AND b.Type = 'VP' 
WHERE a.Type = 'PM' 
+0

...하지만 MySQL의에 대해 아무것도 말하지 않는다 나는 다음 코드를 실행하고는 먼저 (prj_emp_resp_listing에 대한 별칭) 근처에 잘못된 구문을 말한다 갱신 prj_emp_resp_listing a.prj_code = b.prj_code과에 B를 prj_emp_resp_listing 가입 .resp_type_code = 'PA' 세트 a.emp_code_resp = b. emp_code_resp a.resp_type_code = 'PM – james

+0

@james MySQL 버전을 사용하고 있다고 가정합니까? 그것은 작동해야합니다,이 데모를보세요 : http://www.sqlfiddle.com/#!2/daacf0/1 – jpw

+0

@ james 그러나 실제로 사용하는 데이터베이스는 무엇입니까? 그것은 MySQL 또는 뭔가 다른가요? – jpw

관련 문제