webForumDet fria alternativet

Lista ett värde bland flera!

ASP

10 svar · 354 visningar · startad av Alamartimo

Medlem sedan okt. 2004129 inlägg
Frågan#1

Hej,

Har ett problem som jag funderat på länge.

Har inte skrivit någon kod då jag inte vet än hur jag ska göra.

Jag har en tabell som heter Practice där jag listar tider Förare gjort och en tabell som heter Forare.

En Förare har alltså gjort många tider i Practice men jag vill i en resultat sida visa dom bästa tiderna som respektive förare gjort.

Har funderat på:

 Select min(tid) Laptime FROM Practice

men sen är det stopp..

Någon som vet hur jag ska göra?

Tack på förhand.

/Hannu

Medlem sedan juni 200032 967 inlägg
#2
Select forare, min(tid) Laptime FROM Practice group by forare order by forare
Medlem sedan dec. 20003 887 inlägg
#3

Så här tolkar jag frågan.

SELECT namn, min(tid)
FROM Practice
INNER JOIN Forare ON Forare.id = Practice.forarid
GROUP BY namn
ORDER BY min(tid)
Medlem sedan juni 200032 967 inlägg
#4

Om man läser frågan ordentligt är det klart att man kan tolka det så. ;) :)

Mvh

Medlem sedan okt. 2004129 inlägg
#5

Ahh okej..

Jag förstår hur Ni tänkt men får inte till koden.

Så koden jag gjort ser ut så här:
Följde Engine^ 's exempel men virrade nog ihop koden fel :e

	set Conn = Server.CreateObject("ADODB.Connection") 
	Conn.Open "DSN=F1SLM"
	SQL = "SELECT ManagerID, min(LapTime) FROM Practice INNER JOIN Manager ON Manager.ManagerID = Practice.ManagerID"
	Set rsVisa = Conn.Execute(SQL)

Glömde ju.. Fick det här felmeddelandet på ovan kod:

Microsoft OLE DB Provider for ODBC Drivers fel '80004005'

[MySQL][ODBC 3.51 Driver][mysqld-4.0.21-nt]Column: 'ManagerID' in field list is ambiguous

/F1SLM/showpractice.asp, rad 37 (Set rsVisa = Conn.Execute(SQL))

Var inte exakt de tabellnamnen jag skrev innan.

Men i alla fall i tabellen Practice har jag fälten.

PracticeID (primärnyckel), ManagerID, LapTime

Har en tabell som heter Manager där namnet på personen (managern) etc lagras.

22 Managers kör sedan Practice, 10 varv var..

På resultatsidan vill jag då visa den bästa varvtiden den enskilde Managern presterat samt visa Managerns namn från tabellen Manager.

Ja jag tror ni förstår :)

Medlem sedan juni 200032 967 inlägg
#6

Du har ju kastat bort hälften av Engine^s SQL-fråga, till att börja med...

Angående felmeddelandet; du måste ange tabell för ManagerID i SELECT-delen, precis som i din JOIN.

Medlem sedan okt. 2004129 inlägg
#7

@nders:

Ja det har jag ju gjort :r

Jag ska kolla :-)

Tack

Medlem sedan okt. 2004129 inlägg
#8

Okej nu är koden som följer:

set Conn = Server.CreateObject("ADODB.Connection") 
	Conn.Open "DSN=F1SLM"
	SQL = "SELECT Manager.ManagerID, min(LapTime) FROM Practice INNER JOIN Manager ON Manager.ManagerID = Practice.ManagerID GROUP BY ManagerID"
	Set rsVisa = Conn.Execute(SQL)

Do Until rsVisa.EOF

Counter = Counter + 1

Får ett annat felmeddelande nu.

ADODB.Recordset fel '800a0cc1'

Objektet kunde inte hittas i mängden med det begärda namnet eller numret.

/F1SLM/showpractice.asp, rad 59

Rad59

<%= rsVisa("MFName")%>&nbsp;<%= rsVisa("MLName")%>

Fälten: MFName och MLName ligger i tabellen Manager

hum..

Måste det inte vara med mer info i Select-satsen för att jag ska kunna få ut den infon??

Medlem sedan dec. 200012 464 inlägg
#9

Måste det inte vara med mer info i Select-satsen för att jag ska kunna få ut den infon??

Jo. Om du lägger till kolumner i select-listan så skall du även lägga till dem i group by.

Medlem sedan okt. 2004129 inlägg
#10

Det problemet fixat men nu får jag inte ut värdet LapTime:


SQL = "SELECT Manager.ManagerID, Manager.MFName, Manager.MLName, min(LapTime) FROM Practice INNER JOIN Manager ON Manager.ManagerID = Practice.ManagerID GROUP BY ManagerID, MFName, MLName ORDER BY LapTime"

Felmeddelande:

ADODB.Recordset fel '800a0cc1'

Objektet kunde inte hittas i mängden med det begärda namnet eller numret.

/F1SLM/showpractice.asp, rad 62

Rad62: <%= rsVisa("LapTime")%>

Har även provat att ha med Practice.LapTime och bara LapTime i GROUP BY

Värdet LapTime finns bara i Tabellen Practice och inte i tabellen Manager..

Medlem sedan okt. 2004129 inlägg
#11

Fixade det :)

SQL = "SELECT Manager.ManagerID, Manager.MFName, Manager.MLName, min(LapTime) AS LTIME FROM Practice INNER JOIN Manager ON Manager.ManagerID = Practice.ManagerID GROUP BY ManagerID, MFName, MLName ORDER BY LapTime DESC"

La till AS LTIME

Rad62: <% rsVisa("LTIME") %>

Tack alla som svarade mig :birp

263 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
136 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)