안녕하세요
질문 하나 드립니다.
ID BuildID RID BEGIN END POWER SPOWER Result
23 124 2001 2013-04-04 2013-04-05 5 8 0
27 124 2001 2013-04-04 2013-04-05 5 0 0
30 124 2002 2013-04-04 2013-04-05 5 15 0
96 124 2001 2013-04-04 2013-04-05 0 8 0
99 124 2003 2013-04-04 2013-04-05 5 7 0
이런 식의 데이터가 있을 때 POWER 와 SPOWER에 대한 문제입니다.
POWER 는 SPOWER에서 빠지는 겁니다. 행마다.. 행은 현재 5개이지만 10개도 될 수 있고 20개도 될 수 있고 더 작아질수도 있습니다.
물론 필드 값 또한 틀려지겠지요.
ID 23에서 SPOWER - POWER 하면 SPOWER는 3이 남는데 이 3으로 아래 27행에서 다시 SPOWER - POWER를 해야합니다.
SPOWER가 POWER 보다 작을 시는 건너띄고 다음 행에서 SPOWER가 클 경우 빼주는 형식입니다.
결과는
ID BuildID RID BEGIN END POWER SPOWER Result
23 124 2001 2013-04-04 2013-04-05 5 3 1
27 124 2001 2013-04-04 2013-04-05 5 0 0
30 124 2002 2013-04-04 2013-04-05 5 0 1
96 124 2001 2013-04-04 2013-04-05 0 8 0
99 124 2003 2013-04-04 2013-04-05 5 7 0
추가 : POWER는 일의 양이고 SPOWER는 체력이라 할 수 있습니다.
SPOWER에서 POWER를 차례로 없애주는 거죠.
8 - 5 = 3
위의 남은 3 - 5 = 패스
위의 남은 15 - 5 = 10
위의 남은 10 - 5 = 5
위의 남은 5 - 5 = 0
그래서 ID96와 ID99는 아무런 짓도 안해도 되는거구요.
이런 쿼리가 while문을 돌리지 않고 가능한가요?
가능하다면 샘플링 좀 부탁드립니다.
Comment 1
-
불타는불쥐[김경진]
2013.04.25 14:18
ID 23에서 SPOWER - POWER 하면 SPOWER는 3이 된다고 하셨는데.
ID 23 의 SPOWER 이 ID 27 , ID 30,ID 96,ID 99 에 영향을 줘서
결과 ID 27 , ID 30,ID 96,ID 99 값이 0 , 0,8,7 이 되는건가요..^^ 잘 이해가 안가네요...