2017-11-20 2 views
0

두 개의 열이있는 'PP_Match'라는 테이블이있는 SQL 데이터베이스가 있습니다.다른 열의 가장 높은 값을 기준으로 열을 업데이트하십시오.

ID는 POSITION_1, Position_2, 원형이 테이블 ID에 Draw_size

는 POSITION_1 Position_2와 함께 복합 키이다!

'Round'열의 가장 높은 값을 기준으로 Draw_size 열을 업데이트하려고합니다. 이 재미를 더하기 위해 Draw_size 열에는 모든 종류의 스포츠에서 사용하는 녹아웃 드로 (Elimination Draw)가 표시되어야합니다.

그래서 특정 ID에 대해 Round에서 가장 높은 값이 1이면 Draw_size에 '2'를 표시하고 싶습니다. 최대 값이 2이면 draw_size는 4이고 Round 열의 3은 draw_size에서 8을 반환합니다 (4 = 16,5 = 32,6 = 64,7 = 128).

특정 ID의 모든 행을 업데이트하고 싶습니다.

하자가

나 '... ID 001은 3으로, 나는 8의 Draw_size 값으로 모든 5 개 행을 업데이트 할 "라운드"의 higest 값을 데이터베이스에 5 개 행이 말 시도하고 여러 번 실패했습니다 ...

당신의 assitance에 감사드립니다 !!! 그런

답변

0

뭔가

UPDATE PP_MATCH pp1 
LEFT JOIN (
    SELECT ID, MAX(ROUND) as Max_Round FROM PP_MATCH GROUP BY ID) A 
ON A.ID = pp1.ID 
SET pp1.Draw_size = POW(2, Max_Round) 
+0

당신은 생명의 은인입니다 작동합니다

/프레드! 이것은 그랬다 ... 나는 그것을 약간 바꿔야했지만, 당신의 질문은 성공의 열쇠였다 !!! 감사합니다. –

관련 문제