![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 113 Pomógł: 1 Dołączył: 13.05.2003 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Witam, kombinuje na rozne sposoby i za cholere nie chce pokazać proawidlowej wartosci.
Mam 2 tabele. ZAMOWIENIA i ZAMNR [ZAMOWIENIA] id_zamow data reszte rzeczy pomijam [ZAMNR] idprod idzam //tutaj klucz obcy do id_zamow nazwa ile Chce aby w zależnosci od wybranego zakresu dat w tabeli ZAMOWIENIA wybral mi 1 produkt z tabeli ZAMNR ktory byl najczęściej kupowany i najwięcej sprzedawany gdyby nie było to zależne od wartosci 'ile' to bym sobie poradzil, ale tak to chyba w jednym zapytaniu nie da sie tego zrobic. Przykładowo, mam 3 zamowienia: zamowienia_1: koperta biala, ile=5 teczka_czerwona, ile=2 zeszyt, ile=1 zamowienie_2: zeszyt, ile=1 koperta_biala, ile=1; zamowienie_3: zeszyt, ile=2 gumka, ile=1 Jaka widać zeszyt był najczęściej kupowany, a koperta_biala była byla najwięcej sprzedawana. Ktos ma jakis pomysl jak to ugryźć? Ten post edytował termin 10.01.2007, 21:03:49 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Przyjaciele php.pl Postów: 5 724 Pomógł: 259 Dołączył: 13.04.2004 Skąd: N/A Ostrzeżenie: (0%) ![]() ![]() |
1. Czemu trzymasz nazwe produktu i jego ID w pozycji zamowienia [ZAMNR]? Wystarczy ID + join
2. nazwy kolumn, tabel masz, hmm, nieintuicyjne, co chwile musze przewijac ekran i sprawdzac jak zapisujesz nazwy pod zam_id, zamowienie_id, id_zam, idzam czy inaczej (ja stosuje zamowienie_id) 3. SQL testowany w glowie, jakbys podal skrypt tworzacy tabele + troche danych (INSERTY) to bylo by mi latwiej. Przedmioty ktore znalazly sie w najwiekszej ilosci zamowien (ilosc zamowien z danym przedmiotem): SELECT COUNT( * ) AS ile FROM ZAMNR GROUP BY idprod ORDER BY ile DESC zeby wybrac jeden to ... LIMIT 1 zeby wybrac z przedzialu czasowego to trzeba dolaczyc Zamowienia i ograniczyc ich date SELECT COUNT( * ) AS suma FROM ZAMNR JOIN zamowienia z ON z.id = ZAMNR.idzam WHERE z.data BETWEEN '2006-01-01' AND '2006-12-31' GROUP BY idprod ORDER BY suma DESC Przedmioty, ktorych najwiecej sprzedano (w sztukach) SELECT SUM( ile ) suma -- zsumuje wartosci kolumny 'ile' FROM ZAMNR -- z zamowien JOIN zamowienia z ON z.id = ZAMNR.idzam WHERE z.data BETWEEN '2006-01-01' AND '2006-12-31' GROUP BY idprod ORDER BY suma DESC -- dla kazdego z produktow dziala? |
|
|
![]() ![]() |
![]() |
Aktualny czas: 10.10.2025 - 15:18 |