Re: [lms] Analiza rynku - raport do UKE - automatyczny export z LMS
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
W dniu 2010-05-23 18:07, Jarosław Czarniak pisze:
SUBSTRING_INDEX(SUBSTRING_INDEX(address,' ',1),'/',1) as ULICA
Nie to zebym narzekal bo niezly kawal robotki zrobiles, ale z uwagi ze takie raporty bedzie trzeba wykonywac co najmniej raz w roku wolalbym zaplacic komus zeby: - LMS uzywal bazy teryt, gdyz obecnie kazda literowka powoduje zmudne poprawianie; Mysle ze taka implementacja wyjdzie tylko na + dla calego projektu; - skrypt wyciagal wszystkie potrzebne dane z bazy (taryfy, liste uslug klienta itp itd) - obecnie podajesz na sztywno, ze kazdy z klientow ma taka sama predkosc i ten sam typ uslug (co jest oczywiscie zaklamaniem wynikow) - skrypt dzialal z baza postgresowa :P - skrypt mial implementacje w LMS'ie tak by pracownik mogl kliknac guziczek "generuj raport UKE na dzien xx-xx-xxxx" i gotowe.
Ja rozumiem ze mozna nad tym posiedziec te kilka godzin rocznie i wyciagnac takie dane z bazy, (heh, na dobra sprawe to mozna to recznie zrobic w excelu :P), ale takich raportow bedzie coraz wiecej i lepiej dostosowac LMS'a do tego niz za kazdym razem zlecac robote adminowi.
pozdrawiam
Czesc danych jest na sztywno bo nie mialem potrzeby tego wyciagac z bazy. po prostu takie predkosci tam sa - wiec po co komplikowac. kody pocztowe sa recznie wpisane dlatego ze robienie tego pod zapytaniem wydluzalo czas wykonania zapytania z 5 sekund do 45 minut :)
W lmsie fajnie jakby to bylo ale jak znam urzedy to za pol roku raport bedzie wygladal w 70% inaczej, a za rok czy dwa w ogole zmienia koncepcje i cala robota i kasa pojdzie do piachu...
----- "Andrzej Banach" lms@net-komp.net.pl napisał:
W dniu 2010-05-23 18:07, Jarosław Czarniak pisze:
SUBSTRING_INDEX(SUBSTRING_INDEX(address,' ',1),'/',1) as ULICA
Nie to zebym narzekal bo niezly kawal robotki zrobiles, ale z uwagi ze
takie raporty bedzie trzeba wykonywac co najmniej raz w roku wolalbym
zaplacic komus zeby:
- LMS uzywal bazy teryt, gdyz obecnie kazda literowka powoduje zmudne
poprawianie; Mysle ze taka implementacja wyjdzie tylko na + dla calego
projektu;
- skrypt wyciagal wszystkie potrzebne dane z bazy (taryfy, liste uslug
klienta itp itd) - obecnie podajesz na sztywno, ze kazdy z klientow ma
taka sama predkosc i ten sam typ uslug (co jest oczywiscie zaklamaniem
wynikow)
- skrypt dzialal z baza postgresowa :P
- skrypt mial implementacje w LMS'ie tak by pracownik mogl kliknac
guziczek "generuj raport UKE na dzien xx-xx-xxxx" i gotowe.
Ja rozumiem ze mozna nad tym posiedziec te kilka godzin rocznie i wyciagnac takie dane z bazy, (heh, na dobra sprawe to mozna to recznie
zrobic w excelu :P), ale takich raportow bedzie coraz wiecej i lepiej
dostosowac LMS'a do tego niz za kazdym razem zlecac robote adminowi.
pozdrawiam
Andrzej Banach net-komp.net.pl _______________________________________________ lms mailing list lms@lists.lms.org.pl http://lists.lms.org.pl/mailman/listinfo/lms
W dniu 2010-05-25 12:37, Jarosław Czarniak pisze:
Czesc danych jest na sztywno bo nie mialem potrzeby tego wyciagac z bazy. po prostu takie predkosci tam sa - wiec po co komplikowac.
Ale chwila - chcesz powiedziec ze biorac pod uwage pole speed dajesz kazdemu klientowi minimum 16Mbps? Nie ma tam nikt mniejszego pakietu? Przypominam, ze chodzi o realnie sprzedana taryfe, a nie o mozliwosci sieci.
kody pocztowe sa recznie wpisane dlatego ze robienie tego pod zapytaniem wydluzalo czas wykonania zapytania z 5 sekund do 45 minut :)
To akurat drobnostka
W lmsie fajnie jakby to bylo ale jak znam urzedy to za pol roku raport bedzie wygladal w 70% inaczej, a za rok czy dwa w ogole zmienia koncepcje i cala robota i kasa pojdzie do piachu...
Ale przyznaj ze zgodnosc z baza teryt byla by uproszczeniem wszystkiego. Obecnie jak wyimportowalem sobie nazwy ulic z mojego miasta to z lms'a wyszlo mi ich 2 razy wiecej niz jest realnie :P A to jakas literowka, a to ul. dodane itp. Wybor z listy bylby idealnym rozwiazaniem - tylko jakas nie widze chetnych na odplatne jego wdrozenie :(
pozdrawiam
----- "Andrzej Banach" lms@net-komp.net.pl napisał:
W dniu 2010-05-25 12:37, Jarosław Czarniak pisze:
Czesc danych jest na sztywno bo nie mialem potrzeby tego wyciagac z
bazy.
po prostu takie predkosci tam sa - wiec po co komplikowac.
Ale chwila - chcesz powiedziec ze biorac pod uwage pole speed dajesz kazdemu klientowi minimum 16Mbps? Nie ma tam nikt mniejszego pakietu? Przypominam, ze chodzi o realnie sprzedana taryfe, a nie o mozliwosci sieci.
Z uwagi na różne oferty poszczególnych ISP proponujemy aby szybkość łącza dla poszczególnego KLIENTA była liczona jako maksymalna zakontraktowana szybkość do abonenta (downstream) w godzinach dziennych (8-18) w dni robocze.
MAKSYMALNA, a nie minimalna. Po za tym jest magiczne slowo "proponujemy" - daje Ci pole manewru.
kody pocztowe sa recznie wpisane dlatego ze robienie tego pod
zapytaniem wydluzalo
czas wykonania zapytania z 5 sekund do 45 minut :)
To akurat drobnostka
W lmsie fajnie jakby to bylo ale jak znam urzedy to za pol roku
raport bedzie wygladal w 70% inaczej, a za rok czy dwa w ogole zmienia koncepcje i cala robota i kasa pojdzie do piachu... Ale przyznaj ze zgodnosc z baza teryt byla by uproszczeniem wszystkiego. Obecnie jak wyimportowalem sobie nazwy ulic z mojego miasta to z lms'a
wyszlo mi ich 2 razy wiecej niz jest realnie :P A to jakas literowka, a to ul. dodane itp. Wybor z listy bylby idealnym rozwiazaniem - tylko jakas nie widze chetnych na odplatne jego wdrozenie :(
Akurat zaimportowanie danych (przynajmniej ulic) z teryt'a do lmsa i zmodyfikowanie lmsa tak aby ulice sie wybieralo, a nie wpisywalo jest IMO banalnie proste. I nie powinno zajac komus ktos sie zna wiecej niz 20 minut :)
W dniu 2010-05-25 13:28, Jarosław Czarniak pisze:
Z uwagi na różne oferty poszczególnych ISP proponujemy aby szybkość łącza dla poszczególnego KLIENTA była liczona jako maksymalna zakontraktowana szybkość do abonenta (downstream) w godzinach dziennych (8-18) w dni robocze.
MAKSYMALNA, a nie minimalna. Po za tym jest magiczne slowo "proponujemy" - daje Ci pole manewru.
Dla mnie slowo "zakontraktowana" oznacza zakontraktowana, a nie "teoretyczna" jaka moge mu sprzedac.
Pozatym na dole w pytaniach i odpowiedziach mamy:
"Pytanie do lp. 20 : czy mamy wykazać w danej posesji maksymalną możliwą do świadczenia w tej posesji przepustowość, czy też pogrupować wszystkich klientów/abonentów z tej posesji po świadczonych przepustowościach podając dane w układzie: przepustowość - liczba klientów, przepustowość - liczba
Prosimy pogrupować wszystkich klientów/abonentów po świadczonych przepustowościach w układzie wskazanym w instrukcji gdzie poszczególne pakiety i przepustowości będą prezentowane jako oddzielne linie dla tego samego budynku."
A wiec chodzi o realnie swiadczone uslugi, a nie czysto teoretyczne.
Akurat zaimportowanie danych (przynajmniej ulic) z teryt'a do lmsa i zmodyfikowanie lmsa tak aby ulice sie wybieralo, a nie wpisywalo jest IMO banalnie proste. I nie powinno zajac komus ktos sie zna wiecej niz 20 minut :)
Tak wiec moze chcesz sie podjac zrobienia diff'a?
pozdrawiam
On Tue, 25 May 2010 13:39:16 +0200, Andrzej Banach lms@net-komp.net.pl wrote:
W dniu 2010-05-25 13:28, Jarosław Czarniak pisze:
Z uwagi na różne oferty poszczególnych ISP proponujemy aby szybkość łącza dla poszczególnego KLIENTA była liczona jako maksymalna zakontraktowana szybkość do abonenta (downstream) w godzinach dziennych (8-18) w dni robocze.
MAKSYMALNA, a nie minimalna. Po za tym jest magiczne slowo "proponujemy" - daje Ci pole manewru.
Dla mnie slowo "zakontraktowana" oznacza zakontraktowana, a nie "teoretyczna" jaka moge mu sprzedac.
Pozatym na dole w pytaniach i odpowiedziach mamy:
"Pytanie do lp. 20 : czy mamy wykazać w danej posesji maksymalną możliwą
do świadczenia w tej posesji przepustowość, czy też pogrupować wszystkich klientów/abonentów z tej posesji po świadczonych przepustowościach podając dane w układzie: przepustowość - liczba klientów, przepustowość - liczba
Prosimy pogrupować wszystkich klientów/abonentów po świadczonych przepustowościach w układzie wskazanym w instrukcji gdzie poszczególne pakiety i przepustowości będą prezentowane jako oddzielne linie dla tego
samego budynku."
A wiec chodzi o realnie swiadczone uslugi, a nie czysto teoretyczne.
Wałki z UKE jak zwykle mylą pojęcia. Od kiedy to przepustowość określa zdolność do przenoszenia ruchu abonenckiego... Od zawsze byłem za likwidacją tych pastuchów z UKE i zmniejszeniem VAT na usługi dostępu do internetu np. do 15%.
Akurat zaimportowanie danych (przynajmniej ulic) z teryt'a do lmsa i zmodyfikowanie lmsa tak aby ulice sie wybieralo, a nie wpisywalo jest
IMO
banalnie proste. I nie powinno zajac komus ktos sie zna wiecej niz 20 minut :)
Tak wiec moze chcesz sie podjac zrobienia diff'a?
pozdrawiam
Wałki z UKE jak zwykle mylą pojęcia. Od kiedy to przepustowość określa zdolność do przenoszenia ruchu abonenckiego... Od zawsze byłem za likwidacją tych pastuchów z UKE i zmniejszeniem VAT
na
usługi dostępu do internetu np. do 15%.
Może by tak trochę odpuścić z tymi epitetami, to w końcu publiczna lista jest.
p.s. Jeśli zaś chodzi o VAT na internet to akurat to że jest 22% to jest wymóg UE. Bo jak dobrze pamiętasz miało nie byc vatu na intenret ...wkońcu pod naciskiem UE rząd był zmuszony przywrócić VAT na internet ale za to zezwolił odliczać sobie go od podatku zwykłym obywatelom od kwoty 700 coś tam złotych, a dla małżeństw od podwójnej kwoty jeśli oboje pracują i rozliczają się razem.
pozdrawiam
[Sunday, 23 May 2010], Andrzej Banach napisał(a):
- LMS uzywal bazy teryt, gdyz obecnie kazda literowka powoduje zmudne
poprawianie; Mysle ze taka implementacja wyjdzie tylko na + dla calego projektu;
Wgryzajac sie dokładnie w opis tworzenia WCALE NIE MUSIMY PODAWAĆ danych (nazwy ulic) zgodnie z TERYT. Ja w kazdym razie nie będę się wygłupiał i w polu "10" 0 (zero), a w polu "11" i "13" dam wszedzie BD.
plik zrodlowy (w moim przypadku lista_ulic_gdansk.txt) wyciagamy z TERYT
-
przy przegladaniu bazy u dolu jest opcja zapisania
Witam,
Wybacz,ze zawracam glowe ale mam pytanko - skad eksportowales liste ulic? Bo jak bym nie szukal, wychodzi mi tylko xml a nie bardzo mam czas na parsowanie itp.
W dniu 2010-06-07 14:29, Krzysztof A. Michalski [MaxCon] pisze:
Wybacz,ze zawracam glowe ale mam pytanko - skad eksportowales liste ulic?
klika postów temu był link do rozporządzania jak się tam wejdzie to w plikach do pobrania jest 69MB exel
Mi niestety tylko połowę bazy udała się poprawnie dopasować do adresów z bazy exela. Mam niecałe 1100 użytkowników i niemożliwe jest to abym to wszystko ręcznie poprawił. Niestety będę musiał wysłać niekompletny raport. Chciałbym się spytać jak wygląda sytuacja u was ? Udało wam się sporządzić kompletny raport?
Ja sobie importowałem plik exela do mysql za pomocą phpMyAdmin, na bazie danych dużo łatwiej operować
W dniu 2010-06-07 22:12, golab pisze:
Mi niestety tylko połowę bazy udała się poprawnie dopasować do adresów z bazy exela. Mam niecałe 1100 użytkowników i niemożliwe jest to abym to wszystko ręcznie poprawił. Niestety będę musiał wysłać niekompletny raport. Chciałbym się spytać jak wygląda sytuacja u was ? Udało wam się sporządzić kompletny raport?
Ja sobie importowałem plik exela do mysql za pomocą phpMyAdmin, na bazie danych dużo łatwiej operować
Zaimportowalem baze terytowa do bazy lms (tylko swoje wiochy i ulice). Pozniej metoda porowania i wyrzucenie wszystkiego co nie pasuje by kobitka w biurze recznie poprawila co trzeba (w sumie to wyszlo tylko na dobrze samemu lmsowi). Dzieki kolegom z iNET Group porownywanie odbylo sie poprzez jakies dziwne wyliczanie najdluzszego ciagu znakow w adresie itp itd. Zapozyczylem sobie od nich wiekszosc ich skryptu. Tak wiec kobitka do poprawienia miala ok 10% danych i zajelo jej to ok godzinke przy 700 duszach. Z bazy wyssalo praktycznie wszystko, tak ze w sumie wystarczy mi wyslac wygenerowany pliczek. Jednak teryt przydalby sie w samym lmsie - do czego bede goraco nawolywal :P
pozdrawiam
[Monday, 07 June 2010], golab napisał(a):
Mi niestety tylko połowę bazy udała się poprawnie dopasować do adresów z bazy exela. Mam niecałe 1100 użytkowników i niemożliwe jest to abym to wszystko ręcznie poprawił. Niestety będę musiał wysłać niekompletny raport.
Ja sie nie przejalem i nazwy ulic zrobilem niezgodne z TERYT (jest opcja ze wpisujesz "0" i masz z glowy szukanie ulic po bazie teryt ;>)
uczestnicy (8)
-
Andrzej Banach
-
Dariusz kowalczyk
-
golab
-
Jaroslaw Dziubek
-
Jarosław Czarniak
-
Krzysztof A. Michalski [MaxCon]
-
Tomasz Chiliński
-
Waldemar Dymkiewicz