1. Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm
    Information ausblenden

Einrückungen entsprechend der Hierarchie

Dieses Thema im Forum "Oracle" wurde erstellt von iCrystal, 5 Mai 2020.

  1. iCrystal

    iCrystal Neuer Benutzer

    Hallo,

    also ich befasse mich mal kurz, ich habe eine Aufgabe, bei der die Ausgabe entsprechend der Hierarchie eingerückt werden soll. Ich habe zwei Ansätze ausprobiert, hab es aber nicht hinbekommen, wie erwartet (noch Neuling in dem Geschäft :D). Meine Ansätze waren Strings im SELECT-Befehl einfügen und char(9) zu implementieren.

    Es wäre wirklich sehr hilfreich, wenn mir jemand auf die Sprünge helfen kann. :)

    Mein Code:
    Code:
    SELECT og.bez AS Verkaufsgebiet FROM Verkaufsgebiet vg
        JOIN verkaufsgebiet og ON og.vgid = vg.vgid
    ORDER BY og.vgid;
    Die Ausgabe (wie es sein soll) und die Tabelle ist im Anhang. :

    Danke im Voraus.
     

    Anhänge:

    • ausgabe.JPG
      ausgabe.JPG
      Dateigröße:
      40,8 KB
      Aufrufe:
      6
    • db.JPG
      db.JPG
      Dateigröße:
      31,2 KB
      Aufrufe:
      5
  2. akretschmer

    akretschmer Datenbank-Guru

    man macht das üblicherweise mit rekursiven Abfragen. Dazu wird dann aber die Hirarchie nicht als Ebene gespeichert, sondern die Ebenen verlinkt. Dazu gibt es massig Beispiele im Netz.
     
  3. dabadepdu

    dabadepdu Aktiver Benutzer

    Mal angenommen, Du hast mühevoll die Ebenen Information dieser Daten aus den Verweisen der Datensätze per SQL produziert bzw. bestimmt, dann könntest Du sie so verwenden:
    Code:
    select rpad('-',0,'-')||'Nord' from dual
    union all
    select rpad('-',1,'-')||'Nordost' from dual
    union all
    select rpad('-',2,'-')||'Mecklenburg..' from dual
    union all
    select rpad('-',1,'-')||'Nordwest' from dual
    
    Das Problem ist, das Statement oben* kann man in der Praxis nicht einsetzen. Denn Deine Daten "funktionieren" nur, wenn sie genau in der Darstellung sortiert sind, wie in Deinem Bild. (Bilder sind übrigens schlecht zu gebrauchen in einem solchen Forum, Text ist viel hilfreicher) Datensätze sind aber per se nicht sortiert. Dafür bräuchte man separate Sortierinformationen. Ja, die VGID, später ..
    Dein Bild sieht ehrlich gesagt wie ein Screenshot aus Excel aus. Ein DB funktioniert aber anders als ein Tabellenkalkulationsprogramm.

    Falls Deine Daten in einer DB wären, würde jeder Datensatz einen Verweis auf seinen übergeordneten Datensatz enthalten, damit wäre man dann schon mal das Sortierungsproblem los.
    Und dann ist man bei der vorigen Anwort von akretschmer angelangt.

    Und die VGID würde es in einer Datenbank in der Form wahrscheinlich nicht geben. Wenn es eine ID wäre, würde der Wert nicht einem Muster folgen.
    Wenn es eine Sortierinformation wäre-was es ja sein könnte-, würde man es nicht ID nennen.

    Also Du müsstest jetzt überlegen, ob Du mit einem richtigen Datenmodell weitermachen möchtest oder ob es dringend ist und der Nagel nur noch ein Stück tiefer muss und dann krumm geschlagen werden soll.

    *Das select statement im Beispiel erfüllt ganz unauffällig ein wichtiges Kriterium für die funktional gewünschte Darstellung der Einrückung. Es erzeugt durch seinen Aufbau implizit eine Sortierung. (Wobei, jetzt wo ich das schreibe, bin ich mir gar nicht mehr sicher, dass es wirklich garantiert ist...)
    Wie auch immer, selbst wenn es das nicht wäre, würde es sehr anschaulich die Schwäche der Idee zeigen, auch wenn es schafft, Text einzurücken.
     
    akretschmer gefällt das.
Die Seite wird geladen...
Ähnliche Themen - Einrückungen entsprechend Hierarchie
  1. jetwork
    Antworten:
    4
    Aufrufe:
    1.758

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden