Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: funkcja max
Forum PHP.pl > Forum > Bazy danych > MySQL
wpk64
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

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


Z glowy pisalem, sprawdz czy tak zadziala.
wpk64
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

luckyps
  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...
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.