Sorry danke an Joachim van de Bruck natuerlich ;-)

Gruss

Roman Pittroff
Consulting
Bangkok, Thailand

>-----Original Message-----
>From: Roman Pittroff [mailto:[EMAIL PROTECTED]] 
>Sent: Thursday, May 30, 2002 7:32 PM
>To: ASP Datenbankprogrammierung
>Subject: [aspdedatabase] RE: AW: SQL Report Drilldown
>
>
>Genau Hubert 
>
>sowas habe ich gesucht, 
>Das mit der Sotieruns stimmt da habe ich eine weitere spalte dafuer 
>wollte das ganze nicht zu kompliziert machen ;-).
>
>Vielen Dank.
>
>Gruss
>
>Roman Pittroff
>Consulting
>Bangkok, Thailand
>
>
>
>
>>-----Original Message-----
>>From: Joachim van de Bruck [mailto:[EMAIL PROTECTED]]
>>Sent: Thursday, May 30, 2002 7:27 PM
>>To: ASP Datenbankprogrammierung
>>Subject: [aspdedatabase] AW: SQL Report Drilldown
>>
>>
>>Hallo!
>>
>>> Ich habe einen Table mit folgender Strukur
>>>
>>> [project_id],[parent_project_id]
>>>
>>> Dieses erlaubt einen tree zu gestalten.
>>>
>>> Nun wie kann ich am schnellsten per SQL diesen tree
>>> ausgeben lassen?
>>
>>Da gibt es mehrere M�glichkeiten, aber richtig elegant kann
>>man das nur mit SQL Server und Stored Procedures l�sen. Hier 
>>aber ein "universelles Beispiel" f�r beliebige Datenbanken mit 
>>einem Unterprogramm, das rekursiv aufgerufen wird:
>>
>><%
>>option explicit
>>
>>call treeMenu(0, 0)
>>
>>sub treeMenu(byval pParent, byval pLevel)
>>   dim rm: set rm = Server.CreateObject("ADODB.Recordset")
>>   rm.Open "select * from project where parent_project_id = "
>>& pParent,
>>           db, adOpenStatic, adLockReadOnly, adCmdText
>>   do while not rm.Eof
>>      Response.Write(...)
>>      call treeMenu(rm.Fields("project_id").value, pLevel + 1
>>      rm.MoveNext
>>   loop
>>   rm.Close
>>end sub
>>%>
>>
>>Anstatt direkt auf die Tabelle zuzugreifen, kann man auch eine
>>View basteln, die noch mehr Informationen zur�ckgibt:
>>
>>SELECT   *, (SELECT COUNT(*)
>>             FROM   project AS B
>>             WHERE  b.parent_project_id = a.project_id) AS children
>>FROM     project AS A
>>WHERE    parent_project_id = [P1]
>>ORDER BY project_id
>>
>>Hier wird zus�tzlich die Anzahl der "Kinder" ausgegeben, so
>>dass man sich manchen DB-Aufruf dann sparen kann.
>>
>>Wenn die Anzahl der Ebenen begrenzt ist, kann man auch direkt
>>ein hierarchisches Recordset erzeugen lassen.
>>
>>Ich vermisse bei Dir eine Spalte, in der die Reihenfolge
>>innerhalb einer Ebene festgelegt wird. Sortierst Du einfach 
>>nur nach "project_id" oder vielleicht gar nicht?
>>
>>Freundliche Gr��e
>>Joachim van de Bruck
>>
>>
>>
>>
>>| [aspdedatabase] als [EMAIL PROTECTED] subscribed
>>| http://www.aspgerman.com/archiv/aspdedatabase/ = Listenarchiv Sie 
>>| k�nnen sich unter folgender URL an- und abmelden: 
>>| http://www.aspgerman.com/aspgerman/listen/anmelden/aspdedatabase.asp
>>
>
>
>| [aspdedatabase] als [EMAIL PROTECTED] subscribed
>| http://www.aspgerman.com/archiv/aspdedatabase/ = Listenarchiv
>| Sie k�nnen sich unter folgender URL an- und abmelden:
>| http://www.aspgerman.com/aspgerman/listen/anmelden/aspdedatabase.asp
>


| [aspdedatabase] als [email protected] subscribed
| http://www.aspgerman.com/archiv/aspdedatabase/ = Listenarchiv
| Sie k�nnen sich unter folgender URL an- und abmelden:
| http://www.aspgerman.com/aspgerman/listen/anmelden/aspdedatabase.asp

Antwort per Email an