Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Podsumowanie rekordów z przedziałów
Forum PHP.pl > Forum > Bazy danych > MySQL
Marq
Witam!




Próbuję wymyślić możliwie najprostsze zapytanie, które zrealizuje taką funkcję na takich danych:




Chcę podsumować wszystkie koszty wysyłki gdzie data wysłania miesci się od dnia xx-xx-xxxx do dnia yy-yy-yyyy  na produkty z tabeli zamówienia.

Struktura bazy danych wygląda następująco:

Tabela zamówienia (pogląd):

id | data wysłania | waga wysłania do x kg




Tabela schematy cen

id | data obowiązywania od | data obowiązywania do 




tabela ceny

id schematu cen | waga wysłania do x kg | cena




Schematy cenowe są modyfikowane w zależności od cen np Poczty Polskiej, powiedzmy od dnia x do y są takie ceny, a od dnia y+1 do z są inne ceny. Chcę wybrać zsumowane koszty, ale musi się to odbyć w taki sposób, że cena wysłania danego zamówienia jest wyznaczana na podstawie tego, w jakim przedziale schematów cenowych znajduje się data wysłania. Mi się nasuwają dwa podjeścia do tego problemu, jeden: wybrać wszystkie zamówienia, ich daty wysłania i dla każdego zamówienia wybrać schemat cenowy i policzyć cenę, lub wybrać schematy, które zawierają się w okresie xx-xx-xxxx - yy-yy-yyyy, wybrać wszystkie zamówienia w tych schematach i dla nich liczyć sumę. Jest jakieś prostsze podejście do tego problemu?




Pozdrawiam




erix
Zostaje chyba podzapytanie. Jaką masz strukturę w bazie? (typy pól)
Marq
id(int auto_increment) | data wysłania (date) | waga wysłania do x kg (int)

id(int auto_increment) | data obowiązywania od (date) | data obowiązywania do (date)

id schematu cen (int auto_increment) | waga wysłania do x kg(int) | cena(int)


To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.