Avatar billede andersthingholm Nybegynder
15. september 2004 - 15:47 Der er 10 kommentarer og
1 løsning

Forrige dato

Hej,

Jeg har en række records som har en DATE.

F.eks. 2004-09-10, 2004-09-11 og 2004-09-14

Hvordan laver jeg et udtræk som returnere den højeste værdi, samt den næsthøjeste værdi - i ovenstående tilfælge 2004-09-14 og 2004-09-11.

Dvs. at den næsthøjeste værdi ikke nødvendigvis er dagen før den højeste værdi.

Denne virker ikke - returnerer kun 1 dato - den mindste i databasen.

    $query = mysql_query("SELECT DISTINCT rateDate FROM currency_rates ORDER BY rateDate DESC LIMIT 0,2") or die(mysql_error());
   
    while ($row = mysql_fetch_array($query)){
        echo $row[rateDate];
    }

VH

Anders Thingholm
Avatar billede delphinarious Nybegynder
15. september 2004 - 15:52 #1
select * from currency_rates order by rateDate desc limit 2
Avatar billede andersthingholm Nybegynder
15. september 2004 - 15:55 #2
Nej, ikke helt. Der er flere records med samme dato, så den kode vil kun returnere 2 af de samme datoer.
Avatar billede chries Nybegynder
15. september 2004 - 15:56 #3
hvad med
select * from currency_rates group by rateDate desc limit 2
Avatar billede hmortensen Nybegynder
15. september 2004 - 19:10 #4
SELECT rateDate FROM currency_rates GROUP BY rateDate ORDER BY rateDate DESC LIMIT 0,2
Avatar billede coderdk Praktikant
15. september 2004 - 21:18 #5
SELECT DISTINCTROW rateDate FROM currency_rates ORDER BY rateDate DESC LIMIT 0,2
Avatar billede coderdk Praktikant
15. september 2004 - 21:19 #6
Eeerh jeg skal lære at læse det hele ;)
Avatar billede coderdk Praktikant
15. september 2004 - 21:23 #7
Ikke desto mindre burde det virke!!
Avatar billede andersthingholm Nybegynder
16. september 2004 - 08:40 #8
Det virker ikke helt. Denne kode:

    $query = mysql_query("SELECT DISTINCTROW rateDate FROM currency_rates ORDER BY rateDate DESC LIMIT 0,2") or die(mysql_error());
   
    while ($row = mysql_fetch_array($query)){
        echo $row[rateDate];
    }

Returnerer 2004-09-16 og 2004-09-15, men den mindste værdi i databasen er 2004-09-14

Her er SQL'en:

CREATE TABLE `currency_rates` (
  `rateDate` date NOT NULL default '0000-00-00',
  `rateISO` char(3) NOT NULL default '',
  `rateDesc` varchar(244) NOT NULL default '',
  `rateAmount` float NOT NULL default '0'
) TYPE=MyISAM;

#
# Data dump for tabellen `currency_rates`
#

INSERT INTO `currency_rates` VALUES ('2004-09-15', 'EUR', 'Euro', '743.83');
INSERT INTO `currency_rates` VALUES ('2004-09-15', 'USD', 'Amerikanske Dollar', '607.8');
INSERT INTO `currency_rates` VALUES ('2004-09-15', 'GBP', 'Britiske Pund', '1086.2');
INSERT INTO `currency_rates` VALUES ('2004-09-15', 'SEK', 'Svenske Kroner', '81.58');
INSERT INTO `currency_rates` VALUES ('2004-09-15', 'NOK', 'Norske Kroner', '88.57');
INSERT INTO `currency_rates` VALUES ('2004-09-15', 'ISK', 'Islandske Kroner', '8.48');
INSERT INTO `currency_rates` VALUES ('2004-09-15', 'CHF', 'Schweiziske Franc', '482.47');
INSERT INTO `currency_rates` VALUES ('2004-09-15', 'CAD', 'Canadiske Dollar', '468.14');
INSERT INTO `currency_rates` VALUES ('2004-09-15', 'JPY', 'Japanske Yen', '5.5431');
INSERT INTO `currency_rates` VALUES ('2004-09-15', 'AUD', 'Australske Dollars', '425');
INSERT INTO `currency_rates` VALUES ('2004-09-15', 'NZD', 'New Zealand. Dollar', '401.85');
INSERT INTO `currency_rates` VALUES ('2004-09-15', 'EEK', 'Estiske Kroon', '47.54');
INSERT INTO `currency_rates` VALUES ('2004-09-15', 'LVL', 'Lettiske Lats', '1124.8');
INSERT INTO `currency_rates` VALUES ('2004-09-15', 'LTL', 'Litauiske Litas', '215.43');
INSERT INTO `currency_rates` VALUES ('2004-09-15', 'PLN', 'Polske Zloty', '170.51');
INSERT INTO `currency_rates` VALUES ('2004-09-15', 'CZK', 'Tjekkiske Koruna', '23.69');
INSERT INTO `currency_rates` VALUES ('2004-09-15', 'HUF', 'Ungarske Forint', '3');
INSERT INTO `currency_rates` VALUES ('2004-09-15', 'HKD', 'Hongkong Dollar', '77.92');
INSERT INTO `currency_rates` VALUES ('2004-09-15', 'SGD', 'Singapore Dollar', '359.88');
INSERT INTO `currency_rates` VALUES ('2004-09-15', 'SDR', 'Special Drawing Rights', '890.86');
INSERT INTO `currency_rates` VALUES ('2004-09-15', 'BGN', 'Bulgarske lev', '380.3');
INSERT INTO `currency_rates` VALUES ('2004-09-15', 'CYP', 'Cypriotiske pund', '1289.13');
INSERT INTO `currency_rates` VALUES ('2004-09-15', 'MTL', 'Maltesiske lira', '1737.11');
INSERT INTO `currency_rates` VALUES ('2004-09-15', 'ROL', 'Rumænske lei', '0.0181');
INSERT INTO `currency_rates` VALUES ('2004-09-15', 'SIT', 'Slovenske tolar', '3.1');
INSERT INTO `currency_rates` VALUES ('2004-09-14', 'SKK', 'Slovakiske koruna', '18.62');
INSERT INTO `currency_rates` VALUES ('2004-09-15', 'TRL', 'Tyrkiske lira', '0.00041');
INSERT INTO `currency_rates` VALUES ('2004-09-15', 'KRW', 'Sydkorianske won', '0.5312');
INSERT INTO `currency_rates` VALUES ('2004-09-16', 'ZAR', 'Sydafrikanske rand', '92.76');
Avatar billede hmortensen Nybegynder
16. september 2004 - 08:45 #9
Det er da også det rigtige output du får
Avatar billede andersthingholm Nybegynder
16. september 2004 - 09:07 #10
Sorry, ja selvfølgelig er det det ;-)
Avatar billede hmortensen Nybegynder
16. september 2004 - 09:09 #11
Stort set alle svarerne gir samme resultat
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester