2014-10-13 3 views
0

'위도', '경도', '상태'의 3 열이있는 SQL 테이블이 있습니다. 위도/경도의 첫 번째 행부터 시작하여 0.3의 차이가있는 다른 위도/경도 행을 모두 삭제하고 첫 번째 행의 '상태'열을 업데이트하는 표의 모든 행을 통과하는 스크립트를 만들고 싶습니다. 행이 'completed'로 표시됩니다. 그런 다음 '상태'열에서 모든 행이 '완료'될 때까지 위도/경도의 두 번째 행, 세 번째 행 등등에 대해 동일한 작업을 수행합니다.특정 행을 삭제할 SQL 스크립트

delete from create_concert_xml_job 
where abs({latitude1} - latitude) <= 0.3 AND abs({longitude1} - longitude) <= 0.3; 

{latitude1}{longitude} 다른 행이 비교되고 있다는 것을 행에서있다 :이 행을 삭제하는 데 사용해야하는 쿼리입니다.

아무도 도와 줄 수 있습니까?

UPDATE :

3.5/7.5

4.5/6.5

3.6/7.6

4.6/6.6

예를 들어 이들의 위도/경도 제 4 개 행을 말하는

스크립트가 첫 번째 행을 실행하면이 쿼리에서 반환 된 모든 행을 삭제해야합니다.

create_concert_xml_job에서 삭제 여기서 abs (3.5 - 위도) < = 0.3 AND abs (7.5 - 경도) < = 0.3;

그러면 행 3이 삭제됩니다. 그런 다음 행 2를 실행하고 쿼리를 사용합니다.

where create_concert_xml_job에서 삭제 abs (4.5 - 위도) < = 0.3 AND abs (6.5 - 경도) < = 0.3;

그러면 행 4가 삭제됩니다.

+0

'위도 1'이란 무엇입니까? –

+0

'{latitude1}'에 중괄호를 사용한다면 왜'latitude'를 쓰지 않을까요? –

+0

왜 행을 삭제 한 후 상태를 설정 하시겠습니까 ?? –

답변

0

글쎄 나는 다른 길을 발견했다. 당신은

UPDATE create_concert_xml_job SET latitude = (latitude1 위도), longitude = (longitude1 - 경도), status가 '완료'= 사용할 수 있습니다;

나중에는 위도 < 0.3

가 WHERE latitude < = '0.3'AND longitudecreate_concert_xml_job 어디에서 삭제 삭제하는 쿼리를 해고 할 수있는 데이터를 포함하는 테이블이 있습니다 < = '0.3';

+0

이 답변은 당신이 찾고있는가요? –

+0

@HendryTanaka 아니,이게 내가 찾고 있는게 아니야. 우선 첫 번째 행의 위도/경도를 가져 와서 0.3 이내에있는 다른 모든 행을 삭제하고 싶습니다. 그런 다음 두 번째 행의 위도/경도를 가져 와서 0.3 이내에있는 다른 모든 행을 삭제하려고합니다. 그런 다음 세 번째 행, 모든 행이 처리 될 때까지 계속 –

관련 문제