Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> funkcja max
wpk64
post 28.11.2011, 15:02:18
Post #1





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 28.11.2011

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


Witam.

Mam problem z funkcją max w select.
W uproszczeniu:
Mam tabelę w której mam: nazwa_towaru, oddzial, ilosc (ilosc sprzdancyh)

Jak wyciągnąć w listę w której będzie nazwa towaru i maksymalna liczba sprzedanych przez oddział oraz informacja w którym oddziale to było.

Czyli aby funkcja MAX wybrała mi cały wiersz w którym jest dany max.

Pozdrawiam

Go to the top of the page
+Quote Post
luckyps
post 28.11.2011, 15:08:14
Post #2





Grupa: Zarejestrowani
Postów: 153
Pomógł: 41
Dołączył: 28.06.2011
Skąd: Częstochowa

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


  1. SELECT max(ilosc), nazwa_towaru, oddzial FROM tabela GROUP BY oddzial


Z glowy pisalem, sprawdz czy tak zadziala.
Go to the top of the page
+Quote Post
wpk64
post 29.11.2011, 08:27:52
Post #3





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 28.11.2011

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


Trochę nie działa:
Dla danych TABELA1:
towar | oddzial | ilosc | kod
aaa | A | 1 | 01
aaa | B | 2 | 02
aaa | C | 3 | 03
ccc | B | 4 | 04
bbb | A | 5 | 05
bbb | B | 2 | 06
bbb | C | 3 | 07
ccc | A | 1 | 08

potrzebuję uzyskać listę towarów z numerem oddziału w którym była maksymalna sprzedaż czyli coś takiego:
towar | oddzial | ilosc | kod
aaa | C | 3 | 03
bbb | A | 5 | 05
ccc | B | 4 | 04

Jak użyję
SELECT towar, Max(ilosc) AS MaksimumOfilosc, oddzia, kodl FROM TableName GROUP BY towar;
to wychodzą krzaczki:
towar | oddzial | ilosc | kod
aaa | A | 3 | 01
bbb | A | 5 | 05
ccc | B | 4 | 04
Czyli lista towarów i max sprzedaż - zgadza się, ale oddział i kod to pierwsze wystąpienie a ja potrzebuję konkretne dane dla wybranego maxa

Pozdrawiam

Go to the top of the page
+Quote Post
luckyps
post 29.11.2011, 15:45:07
Post #4





Grupa: Zarejestrowani
Postów: 153
Pomógł: 41
Dołączył: 28.06.2011
Skąd: Częstochowa

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


  1. SELECT a.*,
  2. (SELECT kod FROM TableName WHERE towar = a.towar AND ilosc = a.ilosc) AS kod ,
  3. (SELECT oddzial FROM TableName WHERE towar = a.towar AND ilosc = a.ilosc) AS oddzial
  4. FROM (
  5. SELECT max(ilosc) AS ilosc, towar FROM TableName GROUP BY towar
  6. )a ;


Tylko to akurat bedzie dzialac tylko dla takiej tabeli jaka podales...
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 21.06.2025 - 04:01