W dniu 2011-04-05 10:41, A.L.E.C pisze:
No jeden raport może bym dał radę dość szybko. Proszę o dokładną rozpiskę, jak to ma wyglądać.
Ok. Wstepne zalozenia projektu: http://www.kolno.net/smieci/zalozenia_lms.doc
Wlasnie je wrzucilem pod dyskusje, wiec zmienia sie pewnie troche, ale koncepcja jest wlasnie taka jak tam chaotycznie opisalem.
Ogolnie raport przydalby sie z danych ktore juz sa w lms (czesciowy). Ja przy jego tworzeniu pomagalem sobie takimi zapytaniami by wygenerowac dane (mozna napisac je poprawnie bo ja nie znam sql'a :P):
zapytanie_tab_wezly:
select ne.id AS ID_WEZEL, ne.name AS OZNACZENIE_WEZLA, 'własny' AS WLASNOSC, 'węzeł sieci' AS RODZAJ_WEZLA, 'budynek' AS TYP_OBIEKTU, 'PODLASKIE' AS WOJEWODZTWO, 'kolneński' AS POWIAT, 'Kolno' AS GMINA, '2006011' AS ID_GMINY, 'Kolno' AS MIEJSCOWOSC, '0957420' AS ID_MIEJSCOWOSC, 'xxx' AS CECHA, substring(ne.location, '[^0-9]*') as NAZWA_ULICY, 'xxx' AS ID_ULICY, substring(ne.location, '[0-9a-z]*$') as NR_BUDYNKU, '18-500' AS KOD_POCZTOWY, 'xxx' AS NR_DZIALKI, 'xxx' AS SZEROKOSC_GEOGRAFICZNA, 'xxx' AS DLUGOSC_GEOGRAFICZNA, 'NIE' AS WEZEL_SZKIELEOWY, 'TAK' AS WEZEL_DYSTRYBUCYJNY, 'TAK' AS WEZEL_DOSTEPOWY from netdevices ne where ne.location != 'Biuro' AND ne.ports > 2 ORDER BY ID ASC
zapytanie tab_wezly_zasieg:
select 'xxx' AS ID_ZASIEG, n.netdev AS ID_WEZEL, ne.name AS OZNACZENIE_WEZLA, 'xxx' AS ID_ADRES, 'PODLASKIE' AS WOJEWODZTWO, 'kolneński' AS POWIAT, 'Kolno' AS GMINA, '2006011' AS ID_GMINY, 'Kolno' AS MIEJSCOWOSC, 'xxx' AS ID_MIEJSCOWOSC, 'xxx' AS CECHA, split_part(ne.location,' ',1) as NAZWA_ULICY, 'xxx' AS ID_ULICY, btrim(ne.location, 'aąbcćdefghijklłmnńoópqrsśtuvwxyzżźABCDEFGHIJKLMNOPQRSTUVWXYZ ') as NR_BUDYNKU, '18-500' AS KOD_POCZTOWY, 'xxx' AS NR_DZIALKI, (CASE WHEN n.linktype='0' THEN 'Ethernet' ELSE 'WLAN-stacja bazowa' END) AS TECHNOLOGIA, 'TEL_INT' as PAKIET, 'WLASNA' AS WLASNOSC_INFRASTRUKTURY, (CASE WHEN n.linktype='0' THEN '100' ELSE '20' END) AS MAX_PRZEPUSTOWOSC, 'xxx' AS AZYMUT_SEKTORA, 'xxx' AS SZEROKOSC_SEKTORA, 'xxx' AS ZASIEG_SEKTORA, (CASE WHEN c.type=0 AND t.downceil<='2048' THEN '1' ELSE 'xxx' END) AS PRZEPUSTOWOSC_MIN_2_IND, (CASE WHEN c.type=0 AND t.downceil>'2048' AND t.downceil<='8192' THEN '1' ELSE 'xxx' END) AS PRZEPUSTOWOSC_2_8_IND, (CASE WHEN c.type=0 AND t.downceil>'8192' AND t.downceil<='30720' THEN '1' ELSE 'xxx' END) AS PRZEPUSTOWOSC_8_30_IND, (CASE WHEN c.type=0 AND t.downceil>'30720' THEN '1' ELSE 'xxx' END) AS PRZEPUSTOWOSC_30_MAX_IND, (CASE WHEN c.type=1 AND t.downceil<='2048' THEN '1' ELSE 'xxx' END) AS PRZEPUSTOWOSC_MIN_2_BIZ, (CASE WHEN c.type=1 AND t.downceil>'2048' AND t.downceil<='8192' THEN '1' ELSE 'xxx' END) AS PRZEPUSTOWOSC_2_8_BIZ, (CASE WHEN c.type=1 AND t.downceil>'8192' AND t.downceil<='30720' THEN '1' ELSE 'xxx' END) AS PRZEPUSTOWOSC_8_30_BIZ, (CASE WHEN c.type=1 AND t.downceil>'30720' THEN '1' ELSE 'xxx' END) AS PRZEPUSTOWOSC_30_MAX_BIZ from customers c,assignments a,tariffs t,nodes n,netdevices ne where a.customerid=c.id and n.netdev=ne.id and a.tariffid=t.id and n.ownerid=c.id and c.status='3' and c.divisionid='1' ORDER BY n.netdev
A tu zaczalem pisac zapytanie o tab_wezly_interface:
select ne.id AS ID_INTERFEJSU, ne.name AS NAZWA_INTERFEJSU, ne.id AS ID_WEZEL, ne.name AS OZNACZENIE_WEZLA, 'TAK' AS UDOSTEPNIANIE_INTERFEJSOW, 'sieć dostępowa' AS INTERFEJS_KATEGORIA_WEZLA, (CASE WHEN n.linktype='0' THEN 'kablowe' ELSE 'radiowe' END) AS MEDIUM_TRANSMISYJNE, (CASE WHEN n.linktype='0' THEN 'Ethernet' ELSE 'WiFi' END) AS TECHNOLOGIA_TRANSMISYJNA, (CASE WHEN n.linktype='0' THEN '100' ELSE '20' END) AS PRZEPUSTOWOSC_INTERFEJSU, '0' AS PRZEPUSTOWOSC_SZKIELET, '0' AS PRZEPUSTOWOSC_DYSTRYBUCJA,
(CASE WHEN n.linktype='0' THEN '1000' ELSE '20' END) AS PRZEPUSTOWOSC_WOLNA,
pozdrawiam