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
