Witam Baza sklada sie z tabel czasy_awarii oraz czasy_konserwacji (konkretniej sa to juz kwerendy z oryginalnej bazy, przyjete tu jako tabele dla uproszczenia). Czasy awari sklada sie z pol: lokalizacja, nr_awarii,czas awarii. Czasy_konserwacji: lokalizacja, nr_konserwacji,czas_konserwacji. czas awarii to data rozpoczecia awarii,natomiast czas konserwacji to czas zakonczenia konserwacji.
Potrzebuje obliczyc sredni czas od zakonczenia konserwacji do awarii.
Stworzylem kwerende gdzie obie tabele polaczone sa lokalizacja i pokazuje ona wszystkie lokalizacje, wystepujace w nich czasy awarii oraz czasy konserwacji < czasu awarii. Ponizej przedstawiam zapytanie w formie SQL
SELECT czasy_awarii.LOCATION, czasy_awarii.ACTSTART, czasy_konserwacji.ACTFINISH, czasy_awarii.DESCRIPTION FROM (LOCATIONS INNER JOIN czasy_konserwacji ON LOCATIONS.LOCATION = czasy_konserwacji.LOCATION) INNER JOIN czasy_awarii ON LOCATIONS.LOCATION = czasy_awarii.LOCATION GROUP BY czasy_awarii.LOCATION, czasy_awarii.ACTSTART, czasy_konserwacji.ACTFINISH, czasy_awarii.DESCRIPTION HAVING (((czasy_konserwacji.ACTFINISH)<[ACTSTART])) ORDER BY czasy_awarii.LOCATION;
W raporcie mam stworzone sekcje podzielone ze wzgledu na lokalizacje a wewnatrz niej sekcja ACTSTART. w sekcji ACTSTART pobieram czas startu awarii oraz maksymalny dla niej czas konserwacji ( w ten sposob otrzymuje czas ostatniej konserwacji przed awaria) w dodatkowym polu obliczam roznice miedzy startem awarii a koncem konserwacji. Zdarza sie jednak tak,ze konserwacja danej w danej lokalizacji wykonana byla np. 2008-10-01, 2008-10-04, 2008-10-10, natomiast awarie wystapile 2008-10-02, 2008-10-05, 2008-10-06. Wowczas otrzymuje pary: awaria | konserwacja 2008-10-02 | 2008-10-01 2008-10-05 | 2008-10-04 2008-10-06 | 2008-10-04
Jak zrobic aby ostatnia awaria (tzn taka dla ktorej data konserwacji juz wystepuje w tej lokalizacji) nie byla pokazywana ani liczona? W raportach jest opcja ukryj duplikaty, ukrywa ona te pola ktore trzeba ale nie sa one pomijane przy obliczeniach. Dodam ze pole gdzie jest start awarii w raporcie nazwalem START1 natomiast koniec konserwacji KONIEC1. Dodatkowe pole to ROZNICA a jego dane to START1-KONIEC1
Temat staralem sie opisac najmniejzawile, mam nadzieje ze zrozumiale.Bardzo prosze o odpowiedz i pomoc.
zanotowane.pldoc.pisz.plpdf.pisz.plmilosnikstop.keep.pl
|