私は、複数の物流センター(DC)と複数の店舗を持つトラック輸送の問題に取り組んでいます。私はDCと店舗の両方に経度と緯度を持っています。私はどのように47の異なるDCの経度と緯度と4500+の経度と緯度をループし、それぞれの最短距離を見つけるかわからない。私はこのような何かを考えていた(私は一時テーブルが間違っていると思う):ループ内のSQLで複数の距離を見つける
CREATE TEMPORARY TABLE tempStores AS (SELECT * FROM wm_stores)
SET i = 0;
WHILE i <= (SELECT COUNT(*) FROM tempStores) - 1 DO
SELECT store_id FROM tempStores LIMIT i,1 INTO thisStoreID;
SELECT store_id FROM tempStores LIMIT i,1;
SET i = i + 1;
END WHILE;
DECLARE storeLat DOUBLE;
DECLARE storeLon DOUBLE;
DECLARE dcLat DOUBLE;
DECLARE dcLon DOUBLE;
DECLARE storeLatRad DOUBLE;
DECLARE storeLonRad DOUBLE;
DECLARE dcLatRad DOUBLE;
DECLARE dcLonRad DOUBLE;
DECLARE R DOUBLE;
DECLARE distance DOUBLE;
SET R = 3961;
SET storeLat = 37.350659; ## <-- Basically Loop this here
SET storeLon = -76.734855; ## <-- Here
SET dcLat = 37.192498; ## <-- Here
SET dcLon = -77.534201; ## <-- And here... instead of having it all hard coded.
SET storeLatRad = PI() * storeLat/180.0;
SET storeLonRad = PI() * storeLon/180.0;
SET dcLatRad = PI() * dcLat/180.0;
SET dcLonRad = PI() * dcLon/180.0;