Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> wybieranie wartosci nalezacychDoJakichsPrzedzialow
lisu
post
Post #1





Grupa: Zarejestrowani
Postów: 100
Pomógł: 0
Dołączył: 25.01.2003
Skąd: mazury, wawa

Ostrzeżenie: (0%)
-----


Jest tabela produktow (18k rekordow), 2 kluczowe pola to:
id_towaru int (klucz)
cenazakupu int

Wyciagam zapytaniem max(cenazakupu), min(cenazakupu) i avg(cenazakupu) te trzy wartosci do php. Na ich podstawie generuje przedzialy cenowe, np: 100-199.99zl; 200-299.99zl; 300 - 400zl; Teraz chce wyciagnac z bazy ile produktow znajduje sie w danym przedziale cenowym. Wymyslilem np:

  1. SELECT count( * ) , cenazakupu >0 AS l0 ,cenazakupu >100 AS l1, cenazakupu >200 AS l2, cenazakupu >300 AS l3, cenazakupu >400 AS l4
  2. FROM towary
  3. GROUP BY l0,l1, l2,l3,l4


Tutaj da sie wyliczyc to co chce, ale ostatni i pierwszy rekord nie jest mi potrzebny (pierwszy i tak sie sam wygeneruje zawsze bo l? bedzie 0). Nawet jak dodam
  1. (cenazakupu > 100 AND cenazakupu <200) AS l0
itd to powstaje ten niepotrzebny rekord. Czy jest jakas elegancka metoda ?
Go to the top of the page
+Quote Post
dtb
post
Post #2





Grupa: Zarejestrowani
Postów: 476
Pomógł: 1
Dołączył: 5.11.2005
Skąd: Bieruń city

Ostrzeżenie: (0%)
-----


  1. instrukcja WHERE nazwa_pola BETWEEN dolny_przedział AND gorny_przedział
Go to the top of the page
+Quote Post
lisu
post
Post #3





Grupa: Zarejestrowani
Postów: 100
Pomógł: 0
Dołączył: 25.01.2003
Skąd: mazury, wawa

Ostrzeżenie: (0%)
-----


Cytat(dtb @ 2006-03-02 18:27:04)
  1. instrukcja WHERE nazwa_pola BETWEEN dolny_przedział AND gorny_przedział

chce wyciagnac ilosci do wszystkich przedzialow jednym zapytaniem.
chyba
  1. ... WHERE l0 !=0 AND l1 !=0 itd...
rozwiaze moj problem (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
spenalzo
post
Post #4





Grupa: Zarejestrowani
Postów: 2 064
Pomógł: 1
Dołączył: 22.01.2003
Skąd: Poznań

Ostrzeżenie: (0%)
-----


  1. SELECT
  2. SUM(IF(visits>0 AND visits<100,1,0)) AS zakr_0_100,
  3. SUM(IF(visits>100 AND visits<200,1,0)) AS zakr_100_200,
  4. SUM(IF(visits>200 AND visits<300,1,0)) AS zakr_200_300,
  5. COUNT(id) AS ilosc
  6. FROM dupa3

Coś takiego może?

Ten post edytował spenalzo 2.03.2006, 19:18:16
Go to the top of the page
+Quote Post
lisu
post
Post #5





Grupa: Zarejestrowani
Postów: 100
Pomógł: 0
Dołączył: 25.01.2003
Skąd: mazury, wawa

Ostrzeżenie: (0%)
-----


Cytat(spenalzo @ 2006-03-02 20:17:44)
  1. SELECT
  2. SUM(IF(visits>0 AND visits<100,1,0)) AS zakr_0_100,
  3. SUM(IF(visits>100 AND visits<200,1,0)) AS zakr_100_200,
  4. SUM(IF(visits>200 AND visits<300,1,0)) AS zakr_200_300,
  5. COUNT(id) AS ilosc
  6. FROM dupa3

Coś takiego może?

Super (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) dzieki
Go to the top of the page
+Quote Post

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: 28.09.2025 - 09:44