ok troche duzo osob napisalo (panika jakas czy co ? :P) wiec nie bede odpowiadac pojedynczo... :P
1) WYCIAGNIECIE GLOWNYCH DANYCH
select SUBSTRING_INDEX(SUBSTRING_INDEX(address,' ',1),'/',1) as ULICA, SUBSTRING_INDEX(address,'/',1) as ADRES,
'22' AS KOD_WOJ, 'POMORSKIE' AS NAZWA_WOJ, 'x' AS KOD_POW, 'x' AS NAZWA_POW, 'x' AS KOD_GMN, 'x' AS NAZWA_GMN, 'x' AS SYM, 'x' AS NAZWA, 'x' AS SYM_UL, 'x' AS CECHA, 'x' AS NAZWA_1, 'x' AS NAZWA_2, SUBSTRING_INDEX(SUBSTRING_INDEX(address,'/',1),' ',-1) AS NR_POS, count(*) as NR_LOK ,c.zip AS PNA, 'WLASNA' AS WLAS, ( CASE WHEN (c.zip='80-286' OR c.zip='80-287' OR c.zip='80-288' OR c.zip='80-289' OR c.zip='83-010') THEN 'tvk' ELSE 'eth' END) AS TECH, (case when (c.zip IN ('80-434','81-364','80-227','80-145','80-319','81-862','80-262','80-271','80-515','80-438','80-410','80-261','80-241','80-252','87-718','81-749','81-718','83-011','80-024','80-257','80-030','80-031','80-043','80-240','80-243','80-246','80-242','80-464','80-245','80-433','80-025','80-281','80-371','80-455','80-463','80-432','80-431','80-841','80-747','80-224','80-452','80-316','80-152','80-146','80-021','80-034','80-532','80-875','80-317','84-241','80-266','80-276','80-268','80-277','80-111','80-150','80-283','80-748','80-442','80-308','80-408','80-406','80-869','80-405','80-680','80-050','80-293','80-451','80-453','80-418','80-419','80-445','80-440','80-307','80-302','83-241','80-259','80-454','80-449','80-282','80-420','80-417','80-142','80-225','80-402','80-232','80-900','80-062','80-178','80-126','80-367','83-330','80-436','80-547','80-163','80-218','83-000','80-443','80-538','80-421','80-141','81-805','80-010','80-465','80-450','80-469','82-550','80-871','80-461','80-439','80-339','80-351','80-258','80-738','80-267','80-313','80-301','80-300','80-255','80-143','80-160','80-104','80-105','80-103','80-136','80-807','80-608','80-101','80-147','80-107','80-139','81-139','80-114','80-112','80-511','80-536','80-540','80-534','81-857','80-820','80-543','80-531','80-557','83-141','80-514','80-503','80-369','80-546','80-366','80-365','80-124','80-462','80-856','80-814','81-817','81-812','80-344','80-334','80-416','80-429','80-210','80-247','80-207','80-770','80-863','80-249','80-554','84-200','80-204','80-846')) then 'TEL+INT' else 'TEL+TV+INT' end) as PAKIET, '20000' AS SPEED, 'ND' AS MB_LIMIT, count(*) as LICZBA_KLIENT
from customers c,assignments a,tariffs t where
a.customerid=c.id and a.tariffid=t.id and c.status='3' and c.divisionid='1' and c.creationdate<'1230681600' group by pakiet,TECH,ADRES ORDER BY adres ASC
tam gdzie sa kody wpisane jest wybierane jaka technologia dostepu jest dostepna. wynik nalezy zapisac jako csv z przecinkami jako separatory
2) GENERACJA ZAPYTAN DO STWORZENIA BAZY ULIC
#!/bin/bash
x=0 while read ulica do
x=$(($x+1)); #echo $a;
if [ $x = 1 ]; then dane2=$ulica fi
#echo $x if [ $x = 2 ]; then echo "insert into ulice values('$dane2','$ulica');" x=0 fi
done < "lista_ulic_gdansk.txt"
plik zrodlowy (w moim przypadku lista_ulic_gdansk.txt) wyciagamy z TERYT - przy przegladaniu bazy u dolu jest opcja zapisania
3) ZASTEPUJEMY wiekszosc dyfku nazwami ulic i identyfikatorami <? $fp=fopen('customers-2009.out.csv','w');
$link = mysql_connect('baza','login','haslo');
mysql_select_db('lms',$link); $q="set names 'utf8';"; //echo $q."\n"; $result=mysql_query($q);
if (($handle = fopen("customers-2009.csv","r")) !== FALSE) { while (($data = fgetcsv($handle,1000,",")) !==FALSE) { // echo $data[0]; $q='select * from ulice where ulica like "%'.$data[0].'%";'; //echo $q."\n"; $result=mysql_query($q); $row=mysql_fetch_row($result); //print_r($row); //echo $row[0]."\n"; if ($row[0]) { $data[0]=$row[0]; $data[1]=$row[1]; } print_r($data); fputcsv($fp,$data);
} } fclose($handle); fclose($fp);
?>
4) W pliku wyjsciowym w exelu poprawiamy nazwy kolumn, uzupelniamy dane informacjami o wojewodztwach/powiatach/gminach itd itp zastepujac IKSY(wszedzie wklejamy to samo :P ) i to generalnie wszystko.
Jak ktos ma dzialalnosc na obszarze kilku wojewodzwt/powiatow/gmin itp to ma znacznie gorzej bo bedzie musial wiecej rzezbic i przerobic te skrypciki. ale imo nawet wtedy jest to dosc proste.
----- "JPK" internet@jpk.pl napisał:
Jarosław Czarniak pisze:
Nie przesadzajcie, naprawde. Jesli macie porzadek w bazie to 95% raportu rozwiazuje jedno
zapytanie i dennie glupi program wpisujacy idki ulic zamiast nazw do raportu. Potem trzeba tylko recznie pare dupereli poprawic (copy/paste) i tyle.
Jak ktos chce to sie podziele (tylko niech pisze dodatkowo do mnie
na mejla a nie tylko na grupe bo przeocze)
Ja raport na 18000 klientow robilem 2 godziny od poczatku do konca.
Ja poproszę
----- "CezaRgm" cezarykl@gmail.com napisał:
W Państwa liście datowanym 21 maja 2010 (14:47:30) można
przeczytać:
Potrzebuje informacji ile takie cos moze kosztowac, oraz w jakim
czasie
moze zostac to napisane? Oczywiscie wlaczenie tego pozniej do glownej galezi LMS'a mile
wskazane :)
Mysle, ze to powinien byc jeden z wazniejszych featureow... My moglibysmy sie dorzucic.. mysle ze jeszcze kilka firm tez byloby chetnych.
identyczna sytuacja jest z corocznym raportem dla UKE w sprawie:
ile
doszlo, ile ubylo klientow, ile kasy za lacze i jakiej predkosci
ile
za podlaczenie i inne popierdowki
I CO? jest to w glownej galezi LMSa? a powinno :)
lms mailing list lms@lists.lms.org.pl http://lists.lms.org.pl/mailman/listinfo/lms