Avatar billede sevinding Juniormester
11. juli 2011 - 13:29 Der er 7 kommentarer og
1 løsning

Udtræk af data fra laveste årstal

Hej.
Jeg har et lille problem med noget udtræk.
Jeg har flg. tabel:

            id            year     startdato        nummer
      1562         2001     2001-07-07      62
      1711         2000     2000-07-01      132
      1892         1999     1999-07-03      81
      13492     2010     2010-07-03      102
og dette script:

$wins = mysql_query("SELECT (MIN(wd.year)-YEAR(born))-(RIGHT(MIN(wd.year), 5)<RIGHT(born, 5)) as alder,

MIN(wd.year) AS year,
wd.navn AS navn,
wd.nummer AS nummer,
wd.hold AS hold,
te.id AS teamid,
te.name AS teamname,
t.id AS rytterid,
t.born AS born,
t.flags AS flags,
t.logo AS logo,
t.name AS name


FROM
    alleaar AS wd
    INNER JOIN turen AS t
INNER JOIN
    teams AS te
ON
  wd.hold = te.id

WHERE wd.navn = t.id AND wd.hold = te.id


GROUP BY
t.name HAVING year = $aar

ORDER BY nummer ASC

Det er så meningen, at der skal komme alder og nummer på fra det laveste årstal. Alderen er god nok, men nummeret bliver trukket fra den øverste række i tabellen.
Skulle der mon være en der har en løsning på dette?
På forhånd tak.
Avatar billede micma18_ Nybegynder
11. juli 2011 - 14:13 #1
Nu har jeg bare lige skimtet din forespørgsel, men kan du ikke bare ORDER BY alder ASC eller DESC alt efter hvordan de skal stå?

Ved ikke om det kan have gavn i dit tilfælde, men jeg benytter altid selv EPOCH dato format når jeg gemmer datoer og tider i en database. Det kan være meget belejligt i mange tilfælde!
Avatar billede micma18_ Nybegynder
11. juli 2011 - 14:14 #2
Du kan også have flere parameter med i din order by, eks. "ORDER BY alder, nummer ASC" osv.
Avatar billede sevinding Juniormester
11. juli 2011 - 14:32 #3
Jo. det har jeg alt sammen prøvet.
Problemet ligger i at jeg gerne vil hente 'nummer' fra det laveste årstal.
Lige nu bliver det hentet fra den øverste række.
Avatar billede webweaver Praktikant
11. juli 2011 - 19:23 #4
Ved ikke om jeg følger dig korrekt, men hvis du ønsker det laveste årstal, kan du så ikke bare sortere efter det?

Istedet for

ORDER BY nummer ASC


så bruge

ORDER BY year ASC LIMIT 1
Avatar billede sevinding Juniormester
12. juli 2011 - 06:40 #5
Som sagt har jeg prøvet alle former for ORDER BY.
Jeg har en eller anden ide om, at der skal tilføjes noget her:

WHERE wd.navn = t.id AND wd.hold = te.id

i form af year = ?

for at fortælle at det er det laveste årstal det drejer sig om.
Det er rygnummer på cylelryttere jeg gerne vil vise og som i kan se her:

http://www.tourfacts.dk/by_year/yearly/rookies-alder.php?aar=2000

erd der 2 der har samme nummer. Det holder ikke.
Avatar billede sevinding Juniormester
27. juli 2011 - 20:47 #6
spørgsmål afsluttet.
Avatar billede micma18_ Nybegynder
27. juli 2011 - 21:58 #7
Fik du det til at virke eller hvad?

Men ellers så husk på at WHERE parameteret begrænser resultatet, og ORDER sorterer rækkefølgen, af det resultat som WHERE giver. Så hvis du vil sortere rækkefølge skal du nok ikke gøre det i WHERE ;-)
Avatar billede sevinding Juniormester
29. juli 2011 - 18:57 #8
Tak for interessen.
Nej, jeg fik det ikke til at virke. Jeg har lagt det på hylden indtil videre.
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