Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Sortowanie zgrupowanych rekordów, czyli jak operować wartościami zgrupowanych rekordów
Tomplus
post
Post #1





Grupa: Zarejestrowani
Postów: 1 879
Pomógł: 230
Dołączył: 20.03.2005
Skąd: Będzin

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


Witam,

Piszę już drugi temat, ale mam pytanie w sprawie rekordów z grupwoanych:

mam:
Kod
| ID | PRODUKT | CENA | KOLOR | GRUPA |
| 1 | telewizor | 100 | czarny | RTV |
| 2 | telewizor | 150 | zolty | RTV |
| 3 | telewizor | 50 | fioletowy | RTV |
| 4 | radio | 10 | zielony | RTV |
| 5 | radio | 20 | zolty | RTV |

zapytanie:
  1. SELECT * FROM produkty WHERE GRUPA='RTV' GROUP BY (PRODUKT);


wynik:
Kod
1 telewizor 100 czarny RTV
4 radio 10 zielony RTV


Używając ORDER BY np. CENA działa tylko na te dwa rekordy, a nie zgrupowane.
Co zrobić aby móc dostać wartość np. 150, a nie 100 dla TV i zarazem aby znać kolor dla tej ceny?




znajdzie się jakaś pomocna osoba?
Go to the top of the page
+Quote Post
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




  1. SELECT * FROM (SELECT * FROM produkty WHERE GRUPA='RTV' GROUP BY (PRODUKT)) podsel ORDER BY podsel.CENA DESC
Go to the top of the page
+Quote Post
mmmmmmm
post
Post #3





Grupa: Zarejestrowani
Postów: 1 421
Pomógł: 310
Dołączył: 18.04.2012

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


To zapytanie jest bez sensu (dla bazy danych). Tylko takie coś jak MySQL może wykonać to bez błędu (czasem).
Napisz, co chcesz osiągnąć.
Co ma pokazać, gdy będziesz miał coś takiego:
  1. | ID | PRODUKT | CENA | KOLOR | GRUPA |
  2. | 1 | telewizor | 100 | czarny | RTV |
  3. | 2 | telewizor | 150 | zolty | RTV |
  4. | 3 | telewizor | 50 | fioletowy | RTV |
  5. | 4 | radio | 10 | zielony | RTV |
  6. | 5 | radio | 20 | zolty | RTV |
  7. | 6 | telewizor | 150 | czerwony | RTV |
Go to the top of the page
+Quote Post
Tomplus
post
Post #4





Grupa: Zarejestrowani
Postów: 1 879
Pomógł: 230
Dołączył: 20.03.2005
Skąd: Będzin

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


W takim wypadku wystarczy dla ceny DESC aby jeden z rekordów 2 lub 6 był wyświetlony.

ogólnie problem roziązałem z małą pomocą nospora
chociaż nie wiem dlaczego, ale to zapytanie nie zadziałało tak jak należy, ale gdy w pierwszym selekcie posortowałem wg ceny a potem zgrupowalem.

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: 22.08.2025 - 11:42