Koszyk

[ 0 ] szt.
Pokaż koszyk
Twój koszyk jest pusty


Uzupełnienie informacji dla użytkowników systemu OŚRODEK

w sprawie sporządzenia informacji o wpływach z opłat za udostępnianie materiałów
oraz zgłoszonych pracach geodezyjnych na potrzeby zestawienia dla GUGiK

Uzupełnienie informacji – w związku z kolejnymi wyjaśnieniami GUGiK, jak należy wypełniać tabele (pismo IZ-PZGiK.071.16.2016). Poniżej prezentujemy kolejne zapytania SQL. Aby uzyskać prawidłowe rezultaty zapytań, wymagane jest wypełnienie stosownych pól w systemie OŚRODEK (powiązanie asortymentów z celami, uzupełnianie dat wpływu operatu i daty pozytywnej kontroli, stosowanie różnych prefiksów dla zgłoszeń prac i na wniosek, uzupełnianie typów licencji itp.). Sposób powiązania asortymentów z celami opisany jest w pliku: aktualizacjado8.pdf (opcja: Pomoc → Uzupełnienia → Aktualizacja do wersji 8).

Liczba zgłoszeń prac, które posiadają więcej niż 1 asortyment:

select count(*) from (
select r.uid, count(*) as ile from ROBOTY R, KERGASOR K where r.uid=k.id_roboty
and R.d_roz_p between :"data początkowa" and :"data końcowa"
group by r.uid
having count(*) >1)

Oczywiście kilka asortymentów może obejmować jeden cel – zatem w takim przypadku lepsze byłoby zapytanie – liczba prac posiadających więcej niż 1 cel:

select count(*) from (
select r.uid, count(*) as ile from ROBOTY R, KERGASOR K, Asortym A, PZG_SLOWNIK P where r.uid=k.id_roboty and
a.uid=k.id_asort and a.cel=P.uid
and R.d_roz_p between :"data początkowa" and :"data końcowa"
group by r.uid
having count(*) >1)

Liczba zgłoszonych prac w rozbiciu na cele pracy, dla prac, które mają tylko jeden cel (uwaga – to zapytanie może długo działać):

select  a.cel, p.nazwa_skr, count(*) as "Liczba zgłoszonych prac"
from Asortym A, KERGASOR K, ROBOTY R, PZG_SLOWNIK P where
a.uid=k.id_asort and k.id_roboty=r.uid and a.cel=P.uid
and R.uid in (
select uid from (
select o.uid, count(*) as ile from ROBOTY O, KERGASOR K, Asortym A, PZG_SLOWNIK P where o.uid=k.id_roboty and
a.uid=k.id_asort and a.cel=P.uid
and O.d_roz_p between :"data początkowa" and :"data końcowa"
group by o.uid
having count(*) =1))
group by a.cel, p.Nazwa_skr

Rozbicie opłat wg współczynników wyłącznie dla zgłoszeń posiadających jeden cel:

select K.Jedn_seg, r.R_ceny, r.Nr_Cennika, r.Pozycja, r.wspK, r.wspCl, sum(Wartosc)
from rozlicz R, kart_zam K, roboty B
where R_ceny=8 and k.uid=r.id_zam and k.Nr_vat <> 0 and k.id_kerg=B.uid
and B.uid in (
select uid from (
select o.uid, count(*) as ile from ROBOTY O, KERGASOR K, Asortym A, PZG_SLOWNIK P where o.uid=k.id_roboty and
a.uid=k.id_asort and a.cel=P.uid
and O.d_roz_p between :"data początkowa" and :"data końcowa"
group by o.uid
having count(*) =1))
group by
K.Jedn_seg, R_ceny, Nr_Cennika, Pozycja, r.wspK,r.wspCl

Średni czas kontroli wg celów wyłącznie dla zgłoszeń posiadających jeden cel:

select  a.cel, p.nazwa_skr, avg(D_WYNKONTR-D_WPLYWU) as "Średni czas kontroli", count(*) as "Liczba zgłoszonych prac"
from Asortym A, KERGASOR K, ROBOTY R, PZG_SLOWNIK P where
a.uid=k.id_asort and k.id_roboty=r.uid
and a.cel=P.uid
and R.uid in (
select uid from (
select o.uid, count(*) as ile from ROBOTY O, KERGASOR K, Asortym A, PZG_SLOWNIK P where o.uid=k.id_roboty and
a.uid=k.id_asort and a.cel=P.uid
and O.d_roz_p between :"data początkowa" and :"data końcowa"
group by o.uid
having count(*) =1))
group by a.cel, p.Nazwa_skr

W wypadku wysokiej średniej, można spróbować wyłapać zgłoszenia, które tą średnią zawyżają. Być może któraś data jest wprowadzona błędnie:

select * from roboty where D_WYNKONTR-D_WPLYWU > 100

Wielkość wpływów pogrupowana do celów dla zgłoszeń posiadających jeden cel, kwota liczona bez zaokrągleń do 30 zł, bez kosztów wysyłki i nośnika:

select  a.cel, p.nazwa_skr, sum(L.wartosc) as "Wpływy wg kosztorysu"
from Asortym A, KERGASOR K, ROBOTY R, PZG_SLOWNIK P, kart_zam Z, rozlicz L where
a.uid=k.id_asort and k.id_roboty=r.uid and R.d_prz_o between :"data początkowa" and :"data końcowa"
and a.cel=P.uid and R.uid=Z.id_kerg and Z.typ_kerg='K'
and Z.uid=L.id_zam
and R.uid in (
select uid from (
select o.uid, count(*) as ile from ROBOTY O, KERGASOR K, Asortym A, PZG_SLOWNIK P where o.uid=k.id_roboty and
a.uid=k.id_asort and a.cel=P.uid
group by o.uid
having count(*) =1))
group by a.cel, p.Nazwa_skr

Patrz także (wątek z 30 grudnia 2016 roku): Informacja dla użytkowników systemu OŚRODEK w sprawie sporządzenia informacji o wpływach z opłat za udostępnianie materiałów oraz zgłoszonych pracach geodezyjnych na potrzeby zestawienia dla GUGiK.

Odwiedza nas 100 gości oraz 0 użytkowników.