Announcement

Collapse
No announcement yet.

SQL Unterabfrage

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • SQL Unterabfrage

    Hallo zusammen,

    ich habe folgendes Problem:

    Ich hab in Tab1 Stammdaten eines Gleise, in Tab2 habe ich Zustandsdaten des Gleises die Metergenau erfasst werden.
    In einem Gleisabschnitt kann es meherer Zustände geben, die in Ihrer Längenbeschreibung (StartLaenge, EndLaenge) unterschiedlich sind.


    Tab1:
    ID
    Bezeichung
    StartKm
    EndKm
    Gleislaenge
    AnfangsPunkt
    EndPunkt


    Tab2:
    ID
    Tab1ID
    StartLaenge
    EndLaenge
    BeschreibungZustand



    Beispiel
    1
    Tab1
    Gleis 1
    0
    127
    127
    KM0,00
    KM127,00


    Tab2
    1
    1
    0
    6
    Schwellen defekt
    2
    1
    5
    29
    Schiene abgefahren
    3
    1
    35
    82
    Bettung verschmutzt
    4
    1
    49
    49
    Schienenbruch
    5
    1
    100
    102
    Schwellen defekt

    Ergebnis:
    0-6 Schwellen defekt
    5-29 Schiene abgefahren
    35-82 Bettung verschmutzt
    49-49 Schienenbruch
    100-102 Schwellen defekt

    29-35 keine Zustände
    82-100 keine Zustände
    102-127 keine Zustände

    Summe Zustände:
    78 KM

    Summe keine Zustände:
    49 Km

    Ich möchte jetzt gern auswerten:
    Welche Länge mit Zustanden ist und welche Länge keine Zustände enthält.

    Vielen dank für jeden Tipp.

    Gruß
    MarioRainer
    Zuletzt editiert von MarioRainer; 11.09.2008, 18:14.

  • #2
    Originally posted by MarioRainer View Post
    Ich möchte jetzt gern auswerten:
    Welche Länge mit Zustanden ist und welche Länge keine Zustände enthält.
    Klingt eigentlich ganz einfach. In Tab1.Gleislaenge hast du die Gesamtlänge deines Gleises. Die Strecke mit Zuständen ist die Summe der Differenz von Tab2.EndLaenge und Tab2.StartLaenge je Gleis. Die Strecke ohne Zustände ist dann das was übrigbleibt, also die Differenz von Tab1.Gleislaenge und Gleislänge mit Zuständen.

    Gruß Falk
    Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

    Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

    Comment


    • #3
      Hallo,

      so einfach ist es leider nicht, da sich an einer Position mehrere Zustände befinden können. Wenn ich die Differenzen aufsummiere komme ich auf eine ganz andere Länge.

      Es ist schon erfolderlich die Überlagerung von Zuständen zu lokalisieren.

      Gruß
      MarioRainer

      Comment


      • #4
        OK, da hab ich es mir wohl zu einfach gemacht und nicht konkret genug gelesen .

        Dann müssen die Teilstrecken in Tab2 vor der Differenzbildung erst zusammengefasst werden. Das ist jedoch m.E. mit Standard-SQL und einer einfachen Unterabfrage nicht zu machen. Hierfür müßte man SPs oder ggfs. hierarchische Abfragen verwenden. Dies differiert jedoch je nach verwendetem DBMS.

        Gruß Falk
        Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

        Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

        Comment


        • #5
          Vielleicht mit distinct in der Unterabfrage

          Comment


          • #6
            Hallo Falk

            ich verwende MS Access 2003 als Datenbank.

            Vielleicht kannst du mal ein Beispiel zeigen, wie so eine hierarchische Abfrage aussehen könnte....

            Vielen Dank

            MarioRainer

            Comment


            • #7
              Hallo MarioRainer,

              ich kann mir nicht vorstellen das Access hierarchische Abfragen unterstützt (kenn mich allerdings mit Access auch nicht aus) - hier wird dir wohl nur die Möglichkeit bleiben das programmtechnisch in einer Schleife durchzuackern.

              Gruß Falk
              Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

              Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

              Comment

              Working...
              X