Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Najczęściej kupowany?
termin
post
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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
dr_bonzo
post
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?
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 10.10.2025 - 15:18