webForumDet fria alternativet

dela två tal och få ut ett procent tal

Databaser & SQL

1 svar · 205 visningar · startad av Addeladde

Medlem sedan jan. 20013 406 inlägg
Frågan#1

Hej

Jag har följande sql-sats

sqlString = "Select a.anvandarFornamn, a.anvandarEfternamn, a.anvandarPersonnummer, a.anvandarID, a.anvandarEpost " &_ 
	"From anvandare as a, kursmedlemskap as km " &_ 
	"Where (km.kursID = "& kursID &" " &_
	"And km.anvandarID = a.anvandarID) " &_
	"And a.anvandarTyp = 0 " &_
	"Order by a.anvandarFornamn ASC"
Set anvandareRS = con.execute(sqlString)

While not  anvandareRS.Eof 
   'Antal lektioner som närvarande på
	sqlString = "Select count(lektionID) as antalLektioner from narvaro " &_ 
	 "Where anvandarID = "& anvandareRS("anvandarID") &" "
	Set antalLektionerRS = con.execute(sqlString)
	If Not antalLektionerRS.Eof Then
	 narvaroLektioner =  antalLektionerRS("antalLektioner")
	End If
	antalLektionerRS.close : Set antalLektionerRS = Nothing
	
	'Antal lektioner
	sqlString = "Select count(l.lektionID) as antalLektioner from lektioner as l, kursmedlemskap as km " &_ 
	 "Where l.lektionDatum < #" & now() &"# " &_
	 "And (km.kursID = l.kursID And km.anvandarID = "& anvandareRS("anvandarID") &") "
	Set antalLektionerRS = con.execute(sqlString)
	If Not antalLektionerRS.Eof Then
	 antalLektioner =  antalLektionerRS("antalLektioner")
	End If
	antalLektionerRS.close : Set antalLektionerRS = Nothing

  anvandareRS.MoveNext
Wend

Detta skulle jag vilja sammanfoga till en enda sql-sats så att närvaroprocenten tas ut typ select narvaro / select antallektioner as narvaroprocent

Medlem sedan jan. 20013 406 inlägg
#2

Gjorde så här tror inte det är optimalt?
Dock så är det ju trevligt att kunna få ut antal lektioner också.

sqlString = "Select a.anvandarID, a.anvandarFornamn, a.anvandarEfternamn,  a.anvandarPersonnummer, n.lektionID, " &_ 
	"(Select count(lektionID) from narvaro Where anvandarID = a.anvandarID) as antalLektioner, " &_
	"(Select count(l.lektionID) as antalLektioner from lektioner as l, kursmedlemskap as km " &_ 
	 "Where l.lektionDatum < #" & now() &"# " &_
	 "And (km.kursID = l.kursID And km.anvandarID = a.anvandarID)) as totalAntalLektioner, " &_
	 "(round((antalLektioner / totalAntalLektioner)*100)) as narvaroProcent " &_
	"From anvandare as a, narvaro as n " &_ 
	"Where n.lektionID = "& lektionID & " "&_
	"And a.anvandarID = n.anvandarID " &_ 
	"Order By a.anvandarFornamn, a.anvandarEfternamn"
273 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
134 ms — deklarationer (db)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)
135 ms — ändringar (db)