30. maj 2002 - 10:54Der er
7 kommentarer og 1 løsning
Kategorier og underkategorier
Følgende ASP-eksempel viser fodboldhold og deres spillere. Hvad nu hvis oversigten også skal indbefatte fx spillernes børn? Altså hvordan udvider man eksemplet til at gælde et tredie niveau? Eventuelt vilkårligt mange niveauer?
<% SQL = "SELECT * FROM Teams, Players " _ & "WHERE Players.TeamID = Teams.TeamID " _ & "ORDER BY Teams.TeamName, Players.PlayerName" Set RS = conn.Execute( SQL )
priorTeam = "" Do Until RS.EOF curTeam = RS("TeamName") If curTeam <> priorTeam Then If priorTeam <> "" Then Response.Write "</UL>" End If Response.Write "TEAM: " & curTeam & "<UL>" priorTeam = curTeam End If Response.Write "<LI>" & RS("PlayerName") RS.MoveNext Loop Response.Write "</UL>" ' clean up the tags! %>
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
priorTeam = "" priorPlayer = "" Do Until RS.EOF curTeam = RS("TeamName") If curTeam <> priorTeam Then If priorTeam <> "" Then Response.Write "</UL>" End If Response.Write "TEAM: " & curTeam & "<UL>" priorTeam = curTeam End If
curPlayer = RS("PlayerName") If curPlayer <> priorPlayer Then Response.Write "<LI>" & RS("PlayerName") priorPlayer = curPlayer End If
du kan også i stedtfor lave det med nogle SQL kald inde i loopet...:
SQL = "SELECT * FROM Teams" Set RS = conn.Execute( SQL )
Do Until RS.EOF Response.Write "TEAM: " & curTeam & "<UL>"
teamSQL = "SELECT * FROM Players WHERE Players.TeamID = " & RS("teamID") Set teamRS = conn.Execute( SQL ) Do while not teamRS.EOF Response.Write "<LI>" & teamRS("PlayerName") 'Her kan du lave en ny SQL igen som hender born SQL = "SELECT * FROM PlayersBorn WHERE PlayersBorn.playerID = " & teamRS("playerID") Set plyserBornRS = conn.Execute( SQL ) Do while not plyserBornRS.EOF Response.Write "<LI><LI>" & plyserBornRS("PlayerName") plyserBornRS.movenext loop teamRS.movenext loop
Tak for svarene, Eagleeye. Mht dit første svar vil jeg dog gerne have dit bud på, hvad SQL-sætningen skal være. Det er især WHERE-klausulen, som jeg ikke rigtig kan finde ud af
sql = "SELECT teams.TeamName, players.PlayerName, Borns.BornName FROM (teams LEFT JOIN players ON teams.teamID = players.teamID) LEFT JOIN Borns ON players.playerID = Borns.playerID;"
Nu fungerer det, og det fungerer glimrende. Tak for det!
strSQL = "SELECT Teams.TeamName, Players.PlayerName, Children.ChildrenName, Children.BirthDate FROM Teams INNER JOIN (Players INNER JOIN Children ON Players.PlayerID = Children.PlayerID_FK) ON Teams.TeamID = Players.TeamID_FK ORDER BY Teams.TeamName, Players.PlayerName, Children.BirthDate;"
Set rs = MyConn.Execute(strSQL)
response.write "<table>"
priorTeam = "" priorPlayer = "" Do Until rs.eof curTeam = rs("TeamName") If curTeam <> priorTeam Then Response.Write "<tr><td bgcolor=#000000><font color=#FFFFFF><b>"& curTeam &"</b></font></td></tr>" priorTeam = curTeam End If
curPlayer = RS("PlayerName") If curPlayer <> priorPlayer Then Response.Write "<tr><td bgcolor=#f2f2f2><b>"& rs("PlayerName") &"</b></td></tr>" priorPlayer = curPlayer End If
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.