webForumDet fria alternativet

Presentera data!

14 svar · 376 visningar · startad av Greven

GrevenMedlem sedan okt. 2003118 inlägg
#1

Har två frågor!

Har en tabell: fnamn, enamn, kmtid, distans, tid

Fråga 1

Vill göra en maratonliga! Där top5 listas som har sprungit flest meter (distans). Detta skall endast räknas ut om det finns text i 'tid'-fältet.

Finns inga dubbletter sambandet fnamn och enamn.

Fråga 2

Här vill jag göra en fartlista, dvs. de 5 bästa kmtider skall skrivas ut.

Finns möjligheten? :)

aasahMedlem sedan mars 20033 451 inlägg
#2

Re: Presentera data!

Greven skrev:

...Har en tabell: fnamn, enamn, kmtid, distans, tid

Fråga 1

Vill göra en maratonliga! Där top5 listas som har sprungit flest meter (distans). Detta skall endast räknas ut om det finns text i 'tid'-fältet.

Hur ser det ut i tid om där inte finns en tid? Är inget insatt ==> där står NULL eller har du något defaultvärde som är tomma strängen, 0, ... eller dylikt? Byt i det senare fallet ut NULL nedan mot ditt defaultvärde.

select top 5 * from tabell where tid <> NULL order by distans desc;

Greven skrev:

...Fråga 2

Här vill jag göra en fartlista, dvs. de 5 bästa kmtider skall skrivas ut....

select top 5 * from tabell order by kmtid desc;

Båda dessa uttryck skriver ut alla kolumner för de rader som kommer ut.

GrevenMedlem sedan okt. 2003118 inlägg
#3

Fråga 2

Jag vill lägga ihop alla längderna (distans) som personen ifråga har sprungit.

Databas:
fnamn,enman,distans,tid,kmtid
Göran, Persson, 5000,55.55,6.45
Göran, Persson, 6000,55.55,8.45
Göran, Persson, 5000, ,7.45 <-- Denna skall därmed inte räknas med, eftersom 'tid' inte finns.
Lars Persson, 6550,55.55,8.45
Per Persson, 5550,55.55,8.45

Top 3
Göran Persson - 11000 m
Lars Persson - 6550 m
Per Persson - 5550 m

GrevenMedlem sedan okt. 2003118 inlägg
#4

Ingen som vet? :OO

LarsGMedlem sedan dec. 200012 465 inlägg
#5
select top 5 * from tabell where tid <> NULL order by distans desc

Kommer aldriig att ge något resultat.

select fnamn,enamn,sum(distance) xtrm
from t
where tid <> ''
group by fnamn,enamn
order by xtrm desc
select fnamn,enamn,kmtid
from t
order by kmtid

Hur du begränsar antalet poster till de 5 med lägst kmtid beror på vilken dbms du använder.

GrevenMedlem sedan okt. 2003118 inlägg
#6

Använder access 2003 :OO

LarsGMedlem sedan dec. 200012 465 inlägg
#7
select top 5 fnamn,enamn,kmtid
from t
order by kmtid
GrevenMedlem sedan okt. 2003118 inlägg
#8

Förstod det :)

SQL = "select fnamn,enamn,sum(langd) as xtrm from 2004 where tid <> '' group by fnamn,enamn order by xtrm desc"

Ger följande:

Microsoft OLE DB Provider for ODBC Drivers (0x80040E10)
[Microsoft][Drivrutin för ODBC Microsoft Access] För få parametrar angavs. 1 förväntades.

LarsGMedlem sedan dec. 200012 465 inlägg
#9

Det finns ett fel i Access som innebär att den inte förstår den variant av order by som jag använde mig av. Istället så får du använda

select fnamn,enamn,sum(distance) xtrm
from t
where tid <> ''
group by fnamn,enamn
order by 3 desc

3 motsvarar då den position i select-listan som sum(distance) har.

GrevenMedlem sedan okt. 2003118 inlägg
#10

Nu skriver den ut sidan utan problem... men sum(distance) räknar även då det inte finns något i fältet 'tid'.

tid-fältet är i textformat, enligt mm.ss

Databas:
id,fnamn,enman,distans,tid,kmtid
1,Göran, Persson, 5000,55.55,6.45
2,Göran, Persson, 6000,55.55,8.45
3,Göran, Persson, 5000, ,7.45 <-- Denna skall därmed inte räknas med, eftersom 'tid' inte finns.
4,Lars Persson, 6550,55.55,8.45
5,Per Persson, 5550,55.55,8.45

Top 3
Göran Persson - 11000 m
Lars Persson - 6550 m
Per Persson - 5550 m

Just nu summeras även Göran Perssons längd i id 3

LarsGMedlem sedan dec. 200012 465 inlägg
#11
select fnamn,enamn,sum(distance) xtrm
from t
where tid <> '' and tid is not null
group by fnamn,enamn
order by 3 desc
GrevenMedlem sedan okt. 2003118 inlägg
#12

Funkar kanon!

En liten grej på fråga 2:

select top 5 fnamn,enamn,kmtid from " & request.querystring("ar") & " order by kmtid

Fältet kmtid är text format, enligt mm.ss

Det skriv inte ut någon kmtid, och top 5 funkar inte... har det med formatet att göra?

fnamn och enamn skrivs ut i tabellen, men kmtid utelämnas... :q

LarsGMedlem sedan dec. 200012 465 inlägg
#13

Fältet kmtid är text.

Det vore bättre att lagra det som decimal.

GrevenMedlem sedan okt. 2003118 inlägg
#14

Okej :e

Det finns alltså ingen möjlighet att presentera top 5 av kmtid i formatet 'text' ?

LarsGMedlem sedan dec. 200012 465 inlägg
#15

Text och numeriska värden sorteras olika

T.ex så är '10' mindre än '2' när man jämför text.

Genererad på 396 ms · cache AV · v20260730165559-full.f96bc7eb