Robię analizator kosztów zużycia energii w gosp. domowym i mam problem z korelacją tabel.
Ze strony technicznej temat już mam opanowany urządzenie odczytuje dane w wybranych ostępach czasu i ładuje je do bazy danych SQL.
Tabela ze wskazaniami wygląda następująco:
Przykład z bazy:
Stan określa zużycie w danym odcinku czasu, nie jest to licznik liczący od zera w górę. Za każdym odczytem urządzenie ustawia stan na 0.
O ile nie ma problemu z odczytaniem zużycia w wybranym odcinku czasu np przez ostatnie 24 godziny, ostatni miesiąc itp o tyle mam problem z skorelowaniem tego z cennikiem.
Wymyśliłem sobie iż zrobię kolejną tabelę z cennikiem w której jeden rekord będzie określał wszelkie opłaty, oraz datę od kiedy obowiązuje cennik, wiadomo przy wyliczeniach pobiorę rekord z ceną razy stan za dany okres i mam koszty.
Jak powinno wyglądać takie zapytanie dające mi zużycie w ostatnie 24 godziny oraz cenę
Mogę co prawda powiększyć pierwszą tabelę o kolejną kolumnę CENA lecz to nie potrzebnie zwiększy wielkość i tak już dużej bazy danych.
Co będzie gdy w zapytam o koszty za ostatni miesiąc a w między czasie wystąpiła zmiana cennika
Np. zmiana cennika była 15 a ja mam stany od 1 do 30
Rozbijać to na dwa zapytania na podstawie ostatniej zmiany cennika
Ze strony technicznej temat już mam opanowany urządzenie odczytuje dane w wybranych ostępach czasu i ładuje je do bazy danych SQL.
Tabela ze wskazaniami wygląda następująco:
Code:
ID int
CZAS timestamp
STAN decimal(11,0)
Przykład z bazy:
Code:
12657 2011-03-11 20:39:46 8
12658 2011-03-11 20:40:47 10
12659 2011-03-11 20:41:48 9
12660 2011-03-11 20:42:48 10
Stan określa zużycie w danym odcinku czasu, nie jest to licznik liczący od zera w górę. Za każdym odczytem urządzenie ustawia stan na 0.
O ile nie ma problemu z odczytaniem zużycia w wybranym odcinku czasu np przez ostatnie 24 godziny, ostatni miesiąc itp o tyle mam problem z skorelowaniem tego z cennikiem.
Wymyśliłem sobie iż zrobię kolejną tabelę z cennikiem w której jeden rekord będzie określał wszelkie opłaty, oraz datę od kiedy obowiązuje cennik, wiadomo przy wyliczeniach pobiorę rekord z ceną razy stan za dany okres i mam koszty.
Jak powinno wyglądać takie zapytanie dające mi zużycie w ostatnie 24 godziny oraz cenę

Mogę co prawda powiększyć pierwszą tabelę o kolejną kolumnę CENA lecz to nie potrzebnie zwiększy wielkość i tak już dużej bazy danych.
Co będzie gdy w zapytam o koszty za ostatni miesiąc a w między czasie wystąpiła zmiana cennika

Np. zmiana cennika była 15 a ja mam stany od 1 do 30
Rozbijać to na dwa zapytania na podstawie ostatniej zmiany cennika
