Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> maksymalna wartosc w kolumnie
kanan
post 9.03.2005, 12:38:56
Post #1





Grupa: Zarejestrowani
Postów: 64
Pomógł: 0
Dołączył: 22.10.2004

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


W jaki sposob z bazy mozna wybrac tylko te rekordy, ktorych wartosc w jednej kolumnie jest maksymalna, a wiec np.

10 imie1 nazwisko1
10 imie2 nazwisko 2
9 imie3 nazwisko 3
10 imie4 naziwsko 4
8 imie5 nazwisko5
7 i6 n6
6 i7 n7
5 i8 n8

itd. by w wyniku tego otrzymac imie1, nazwisko1, imie2, nazwisko2, imie3 nazwisko3.

Problem polega w tym, ze nie wiem w jaki sposob zdefiniowac to maksimum,gdyz nie jest wiadome, ile wynosi ta wartosc, a wiec zawsze trzeba sprawdzic to maksimum.
Go to the top of the page
+Quote Post
nospor
post 9.03.2005, 12:49:43
Post #2





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




  1. SELECT *
  2. FROM tabela WHERE a=max(a)


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
kanan
post 9.03.2005, 15:29:08
Post #3





Grupa: Zarejestrowani
Postów: 64
Pomógł: 0
Dołączył: 22.10.2004

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


No wlasnie nie... probowalem zanim napisalem w ten sposob, bo przeciez to jest oczywiste skojarzenie, ale niestety nie dziala.

Otrzymuje odpowiedz:

SELECT *
FROM archiwum
WHERE numer = max( numer )
LIMIT 0 , 30

Na to zapytanie nastepujaca:

#1111 - Invalid use of group function

Wydaje mi sie, ze max jest funkcja systemowa, ale jak widac nie... istnieje jakas inna wbudowana funkcja?
Go to the top of the page
+Quote Post
Darti
post 9.03.2005, 15:59:18
Post #4





Grupa: Zarejestrowani
Postów: 1 076
Pomógł: 62
Dołączył: 6.03.2005
Skąd: Wroc

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


  1. SELECT *
  2. FROM archiwum ORDER BY numer DESC LIMIT 1


--------------------
The answer is out there, Neo. It's looking for you. And it will find you, if you want it to.
SERVER_SOFTWARE : Apache/2.2.4 (Win32) PHP/5.2.1
MySQL Client API version : 5.0.27
Go to the top of the page
+Quote Post
kanan
post 9.03.2005, 16:05:01
Post #5





Grupa: Zarejestrowani
Postów: 64
Pomógł: 0
Dołączył: 22.10.2004

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


Powyzszy zwraca pierwszy wiersz i to faktycznie ma maksymalna wartosc, natomiast ja bym chcial wyswietlic wszystkie, ktore posiadaja maksymalna wartosc, czyli jesli sa 3 wiersze, ktore maja wartosc maksymalna w tej kolumnie to powinien je wyswietlic.

Jak wiec mozna tego dokonac?

Pozdrawiam
Go to the top of the page
+Quote Post
Darti
post 9.03.2005, 17:23:27
Post #6





Grupa: Zarejestrowani
Postów: 1 076
Pomógł: 62
Dołączył: 6.03.2005
Skąd: Wroc

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


  1. SELECT *
  2. FROM archiwum WHERE numer = (SELECT max(numer)
  3. FROM archiwum)


--------------------
The answer is out there, Neo. It's looking for you. And it will find you, if you want it to.
SERVER_SOFTWARE : Apache/2.2.4 (Win32) PHP/5.2.1
MySQL Client API version : 5.0.27
Go to the top of the page
+Quote Post
kanan
post 9.03.2005, 17:43:49
Post #7





Grupa: Zarejestrowani
Postów: 64
Pomógł: 0
Dołączył: 22.10.2004

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


Niestety nie sad.gif

#1064 - You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT max(numer) FROM archiwum)' at line 1

Help!
Go to the top of the page
+Quote Post
Darti
post 9.03.2005, 17:48:26
Post #8





Grupa: Zarejestrowani
Postów: 1 076
Pomógł: 62
Dołączył: 6.03.2005
Skąd: Wroc

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


u mnie działa w taki sposób bez problemu - mam wersje MySQL 4.1.7


--------------------
The answer is out there, Neo. It's looking for you. And it will find you, if you want it to.
SERVER_SOFTWARE : Apache/2.2.4 (Win32) PHP/5.2.1
MySQL Client API version : 5.0.27
Go to the top of the page
+Quote Post
kanan
post 9.03.2005, 18:37:14
Post #9





Grupa: Zarejestrowani
Postów: 64
Pomógł: 0
Dołączył: 22.10.2004

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


Moja wersja to MySQL 4.0.15 . Czy umialby ktos zaproponowac uniwersalne rozwiazanie, ktore bedzie chodzi i pod ta wersja?
Go to the top of the page
+Quote Post
popbart
post 9.03.2005, 22:22:03
Post #10





Grupa: Zarejestrowani
Postów: 255
Pomógł: 0
Dołączył: 22.04.2004
Skąd: Żoliborz

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


http://forum.php.pl/index.php?showtopic=25861
Kurcze, temat powraca co jakiś czas. Tak trudno poszukać ?


--------------------
Visual Basic - kto by pomyślał :)
Go to the top of the page
+Quote Post
kanan
post 9.03.2005, 23:49:35
Post #11





Grupa: Zarejestrowani
Postów: 64
Pomógł: 0
Dołączył: 22.10.2004

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


Tak tylko mi nie chodzi o zwrocenie jednego wiersza. Ja chce wszystkie rekordy, ktore w danej kolumnie maja maksymalna wartosc.
Go to the top of the page
+Quote Post
popbart
post 12.03.2005, 02:22:02
Post #12





Grupa: Zarejestrowani
Postów: 255
Pomógł: 0
Dołączył: 22.04.2004
Skąd: Żoliborz

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


MAM!!!
  1. SELECT t1.*
  2. FROM tabela AS t1 LEFT JOIN tabela AS t2
  3. ON(t1.pole<t2.pole)
  4. WHERE t2.id IS NULL;

cool.gif


--------------------
Visual Basic - kto by pomyślał :)
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: 19.07.2025 - 13:37