MS Access - raporty bez duplikatow obliczenia w raportach bez duplikatow

Tematy


» Moonlight Sonata // Saucedo Odkrywa Miłuje Kocha
»
Baza danych w Accessie!! sama się wyłącza po 1 sekundzie !!
»
Access-nowy rekord w formularzu aby nowy rekord pamiętał ostatni wpis
»
MS Office i nieznana czcionka Jak ją usunąć z listy czcionek?
»
Formularz w Accessie Jak zrobić formularz z opcją edycji?
»
[ms word 2000 pre] nowy dok uruchamia sie z jakims textem wpisanym kiedys tam
»
MS Office 2003 PowerPoint i Word - 2 pytania. O wstawianie w tło obrazka...
»
Przesiadka z MS Office na inny pakiet biurowy... ... czy warto?!?
»
MS Word 2000 - autokorekta Jak wyłączyć wyskakiwanie pewnego okienka?
»
MS Office 2007 rozmieszczenie pasków zadań tak jak w starszych wersjach
»
[MS Office] Sortowanie spisu treści wg. alfabetu j/w

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • imikimi.opx.pl
  • Moonlight Sonata // Saucedo Odkrywa Miłuje Kocha

    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.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • milosnikstop.keep.pl
  • Powered by MyScript