Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Wybieranie ostatniej wyceny
grzegorzch
post
Post #1





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

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


Witam

mam tabelę:
CODE

id | fun | date | value
-------------------------------
1 | FUN1 | 2009-01-01 | 100.01
2 | FUN1 | 2009-01-02 | 100.11
3 | FUN1 | 2009-01-03 | 100.21
4 | FUN1 | 2009-01-04 | 100.31
5 | FUN2 | 2009-01-01 | 110.01
6 | FUN2 | 2009-01-02 | 110.11
7 | FUN2 | 2009-01-03 | 110.21
8 | FUN2 | 2009-01-04 | 110.31
9 | FUN3 | 2009-01-01 | 130.31
10 | FUN3 | 2009-01-02 | 129.11
11 | FUN3 | 2009-01-03 | 128.21
12 | FUN3 | 2009-01-04 | 125.31
13 | FUN3 | 2009-01-05 | 124.31
-------------------------------


tabela zawiera wyceny funduszy inwestycyjnych z poszczególnych dni.
Jak wyświetlić wszystkie fundusze z bazy ale tylko z ich najnowszymi dostępnymi wycenami.
czyli w chcę uzyskać następujący wynik:

CODE

id | fun | date | value
-------------------------------
4 | FUN1 | 2009-01-04 | 100.31
8 | FUN2 | 2009-01-04 | 110.31
13 | FUN3 | 2009-01-05 | 124.31
-------------------------------


Próbowałem używać GROUP BY fun

SELECT fun, MAX(date), value FROM tabela GROUP BY fun

ale wycena (value) nie odpowiada wyświetlonej dacie.
otrzymuję coś takiego:
CODE

id | fun | date | value
-------------------------------
4 | FUN1 | 2009-01-04 | 100.01
8 | FUN2 | 2009-01-04 | 110.01
13 | FUN3 | 2009-01-05 | 130.31
-------------------------------
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
blooregard
post
Post #2


Newsman


Grupa: Moderatorzy
Postów: 2 033
Pomógł: 290
Dołączył: 21.12.2007
Skąd: Łódź




Cytat
SELECT fun, MAX(date), value FROM tabela GROUP BY fun

Bo wybierasz najświerzszą datę, a nie wartosć.
Chyba chodziło Ci o MAX(value).
Go to the top of the page
+Quote Post
Tibod
post
Post #3





Grupa: Zarejestrowani
Postów: 108
Pomógł: 2
Dołączył: 9.05.2007
Skąd: INTERNET

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


Piszę bez prób, ale powinno działać.
  1. SELECT * FROM (SELECT fun, date, value FROM tabela ORDER BY DATA DESC) AS tmp GROUP BY fun;
Go to the top of the page
+Quote Post
grzegorzch
post
Post #4





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

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


Cytat(blooregard @ 22.03.2009, 16:13:50 ) *
Bo wybierasz najświerzszą datę, a nie wartosć.
Chyba chodziło Ci o MAX(value).

Interesuje mnie właśnie najświeższa data i wycena (value) z tej daty.

Cytat(Tibod @ 22.03.2009, 16:14:29 ) *
Piszę bez prób, ale powinno działać.
  1. SELECT * FROM (SELECT fun, date, value FROM tabela ORDER BY DATA DESC) AS tmp GROUP BY fun;


Właśnie o to mi chodziło. Dzięki. działa poprawnie.
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: 2.10.2025 - 21:35