Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Wybieranie ostatniej wyceny
grzegorzch
post 22.03.2009, 15:50:51
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
-------------------------------


--------------------
Pozdrawiam

Grzegorz Ch.
Go to the top of the page
+Quote Post
blooregard
post 22.03.2009, 16:13:50
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).


--------------------
Life's simple... You make choices and don't look back...
Go to the top of the page
+Quote Post
Tibod
post 22.03.2009, 16:14:29
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;


--------------------
"There are only 10 types of people in the world: Those who understand binary, and those who don't"
Go to the top of the page
+Quote Post
grzegorzch
post 22.03.2009, 16:40:36
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.


--------------------
Pozdrawiam

Grzegorz Ch.
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: 14.08.2025 - 13:28