Udskriv undergrupper til undergrupper
Hej alleJeg har 2 tabeller: varegrupper og tilhgrp hvor varegrupper indeholder varegrupper og tilhgrp har to felter: over og under. under er er ID på en undergruppe og over er ID på den som under tilhører.
I varegrupper har jeg harTilh som sættes til on når der indsættes en undergruppe til den og tilhnr som indikerer hvor langt nede i hierakiet den ligger ex 1 = overgruppe 2 = undergruppe 3 = undergruppe til undergruppe osv.
NU vil jeg gerne skrive alle grupperne ud alt efter hvor i hierakiet de ligger. Min kode:
SQLStr = "Select * from varegrupper Where typen = 1 order by indeks, vgnavn"
Set hent = Conn.Execute(SQLStr)
If Not hent.EOF Then
Do While Not hent.EOF
response.write("<A HREF=""varer_gruppe_ret.asp?vgID=" & hent("vgID") & """>" & hent("vgnavn") & "</A>")
If hent("indeks") <> 0 Then
response.write(" (" & hent("indeks") & ")")
End If
response.write("<BR>")
If hent("harTilh") = "on" Then
SQLStr2 = "Select Distinct t.over,v.vgID,v.vgnavn,v.indeks,v.harTilh,v.typen,v.tilhnr from tilhgrp t, varegrupper v Where v.typen = 2 AND v.tilhnr = 2 AND t.over = " & hent("vgID") & " order by v.indeks, v.vgnavn"
response.write(SQLStr2 & "<BR>")
Set hent2 = Conn.Execute(SQLStr2)
If Not hent2.EOF Then
Do While Not hent2.EOF
response.write(" <A HREF=""varer_gruppe_ret.asp?vgID=" & hent2("vgID") & """>" & hent2("vgnavn") & "</A>")
If hent2("indeks") <> 0 Then
response.write(" (" & hent2("indeks") & ")")
End If
response.write("<BR>")
If hent2("harTilh") = "on" Then
SQLStr3 = "Select Distinct t.over,v.vgID,v.vgnavn,v.indeks,v.harTilh,v.typen,v.tilhnr from tilhgrp t, varegrupper v Where v.typen = 2 AND v.tilhnr = 3 AND t.over = " & hent2("vgID") & " order by v.indeks, v.vgnavn"
response.write(SQLStr3 & "<BR>")
Set hent3 = Conn.Execute(SQLStr3)
If Not hent3.EOF Then
Do While Not hent3.EOF
response.write(" <A HREF=""varer_gruppe_ret.asp?vgID=" & hent3("vgID") & """>" & hent3("vgnavn") & "</A>")
If hent3("indeks") <> 0 Then
response.write(" (" & hent3("indeks") & ")")
End If
response.write("<BR>")
If hent3("harTilh") = "on" Then
SQLStr4 = "Select Distinct t.over,v.vgID,v.vgnavn,v.indeks,v.harTilh,v.typen,v.tilhnr from tilhgrp t, varegrupper v Where v.typen = 2 AND v.tilhnr = 4 AND t.over = " & hent3("vgID") & " order by v.indeks, v.vgnavn"
response.write(SQLStr4 & "<BR>")
Set hent4 = Conn.Execute(SQLStr4)
If Not hent4.EOF Then
Do While Not hent4.EOF
response.write(" <A HREF=""varer_gruppe_ret.asp?vgID=" & hent4("vgID") & """>" & hent4("vgnavn") & "</A>")
If hent4("indeks") <> 0 Then
response.write(" (" & hent4("indeks") & ")")
End If
response.write("<BR>")
hent4.MoveNext
Loop
End If
Set hent4 = Nothing
End If
hent3.MoveNext
Loop
End If
Set hent3 = Nothing
End If
hent2.MoveNext
Loop
End If
Set hent2 = Nothing
End If
hent.MoveNext
Loop
Else
response.write("<CENTER>Ingen varegrupper oprettet!</CENTER>")
End If
udskriften ser således ud (incl SQLen):
Bukser
Select Distinct t.over,v.vgID,v.vgnavn,v.indeks,v.harTilh,v.typen,v.tilhnr from tilhgrp t, varegrupper v Where v.typen = 2 AND v.tilhnr = 2 AND t.over = 6 order by v.indeks, v.vgnavn
Korte bukser
Snørebånd
Select Distinct t.over,v.vgID,v.vgnavn,v.indeks,v.harTilh,v.typen,v.tilhnr from tilhgrp t, varegrupper v Where v.typen = 2 AND v.tilhnr = 3 AND t.over = 2 order by v.indeks, v.vgnavn
dibedutter
plastiksnipper
Select Distinct t.over,v.vgID,v.vgnavn,v.indeks,v.harTilh,v.typen,v.tilhnr from tilhgrp t, varegrupper v Where v.typen = 2 AND v.tilhnr = 4 AND t.over = 3 order by v.indeks, v.vgnavn
dimser
Sko (3)
Select Distinct t.over,v.vgID,v.vgnavn,v.indeks,v.harTilh,v.typen,v.tilhnr from tilhgrp t, varegrupper v Where v.typen = 2 AND v.tilhnr = 2 AND t.over = 1 order by v.indeks, v.vgnavn
Korte bukser
Snørebånd
Select Distinct t.over,v.vgID,v.vgnavn,v.indeks,v.harTilh,v.typen,v.tilhnr from tilhgrp t, varegrupper v Where v.typen = 2 AND v.tilhnr = 3 AND t.over = 2 order by v.indeks, v.vgnavn
dibedutter
plastiksnipper
Select Distinct t.over,v.vgID,v.vgnavn,v.indeks,v.harTilh,v.typen,v.tilhnr from tilhgrp t, varegrupper v Where v.typen = 2 AND v.tilhnr = 4 AND t.over = 3 order by v.indeks, v.vgnavn
dimser
Nu er det bare det, at korte bukser er undergruppe af bukser, men listes også under sko, til trods for, at dens over i tilhgrp er 6 (bukser)
Denne SQL henter korte bukser som undergruppe til sko:
Select Distinct t.over,v.vgID,v.vgnavn,v.indeks,v.harTilh,v.typen,v.tilhnr from tilhgrp t, varegrupper v Where v.typen = 2 AND v.tilhnr = 2 AND t.over = 1 order by v.indeks, v.vgnavn
SQL'en burde virke, men....
Kan nogen hjælpe med et bedre loop eller noget SQL der virker.
På forhånd tak
