Announcement

Collapse
No announcement yet.

schwierige Abfrage

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

  • schwierige Abfrage

    Hallo,
    habe folgendes Abfrage-Problem innerhalb einer Tabelle.

    Tabelle AuftragPos
    Position - Laenge - Breite - Bearbeitung
    1 - 1000 - 200 - <null>
    1.1 - <null> - <null> - A
    1.2 - <null> - <null> - B
    1.3 - <null> - <null> - C
    2 - 500 - 800 - <null>
    2.1 - <null> - <null> - A

    Ich möchte nun folgende Daten durch eine Abfrage zurückbekommen:
    1.1 - 1000 - 200 - A
    1.2 - 1000 - 200 - B
    1.3 - 1000 - 200 - C
    2.1 - 500 - 800 - A

    Laenge und Breite ist int - Position und Bearbeitung ist char.
    Bezug ist immer die übergeordnete Position (die nicht mehr erscheint).
    Sql-Server 2000.
    Fällt euch dazu etwas ein
    Vielen Dank im Voraus.

  • #2
    Originally posted by Reinhard1058 View Post
    Fällt euch dazu etwas ein
    Hi,

    du musst wohl die Tabelle mit sich selbst joinen lassen. Dabei schränkst du die Datensätze jeweils so ein, dass du einmal alle Datensätze hast, die in der Spalte "Bearbeitung" den Wert Null haben und einmal alle Datensätze, die einen anderen Wert in der Spalte besitzen. Dann musst du die Joins unter der Bedingung ausführen, dass die Positionen verglichen werden. Dafür musst du wohl die Zahl vor dem Punkt in der Spalte Position extrahieren.
    "(...) deshalb mag ich Binärtechnik. Da gibt es nur drei Zustände: High, Low und Kaputt." (Wau Holland)

    Viele Grüße Novi

    Comment


    • #3
      Originally posted by Novi View Post
      Hi,

      du musst wohl die Tabelle mit sich selbst joinen lassen. Dabei schränkst du die Datensätze jeweils so ein, dass du einmal alle Datensätze hast, die in der Spalte "Bearbeitung" den Wert Null haben und einmal alle Datensätze, die einen anderen Wert in der Spalte besitzen. Dann musst du die Joins unter der Bedingung ausführen, dass die Positionen verglichen werden. Dafür musst du wohl die Zahl vor dem Punkt in der Spalte Position extrahieren.
      in SQL Speak
      Code:
      SELECT  B.Position,  A.Laenge ,A.Breite, B.Bearbeitung  
      FROM    AuftragPos AS A
      JOIN    AuftragPos AS B on A.Position = SUBSTRING (B.Position, 1, CHARINDEX ('.', B.Position, 1)-1 )
                              AND B.Bearbeitung IS NOT NULL
      WHERE   A.Bearbeitung IS NULL

      Comment


      • #4
        Klasse - Vielen Dank

        Vielen Dank für die schnelle und perfekte Antwort.

        Comment

        Working...
        X