Announcement

Collapse
No announcement yet.

Bestimmte Tabellenzeile auslesen

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

  • Bestimmte Tabellenzeile auslesen

    Hallo zusammen,
    ich habe folgendes Problem: Also zunächst mal ein Beispiel aus der tabelle, sonst ist das Problem schwer zu erklären:

    Produktnummer____Eintragsnr____Text
    123 _____________ 00 __________ 548784 dsjhdjsh dhsjdhsj
    123 _____________ 01 __________ <notiz>
    123 _____________ 02 __________ test
    123 _____________ 03 __________ </notiz>
    145 _____________ 00 __________ 879897 shdghsjds
    145 _____________ 01 __________ <notiz>
    145 _____________ 02 __________ blubb
    145 _____________ 03 __________ </notiz>
    145 _____________ 04 __________ dshdjshjdhsj

    So jetzt fragt bitte nicht warum die Tabelle so aufgebaut ist^^
    Ich möchte daraus die Produktnummer, die Nummer aus dem Text sowie den Text der von <notiz> und </notiz> eingeschlossen ist. Also die Ausgabe soll dann so aussehen:

    Produktnummer____Mitarbeiter_____Notiz
    123 _____________ 548784 _______ test
    145 _____________ 879897 _______ blubb


    Habt ihr ne idee wie ich ein entsprechenden select bauen könnte?

  • #2
    Wird denn die Eintragsnr hochgezählt, wenn es eine mehrzeilige Notiz ist? Oder kommt das nicht vor? Wenn nicht dann so:

    [highlight=sql]
    SELECT Produktnummer,
    (
    SELECT SUBSTR(t1.Text, 1, INSTR(t1.Text, ' '))
    FROM Tabelle t1
    WHERE t.Produktnummer = t1.Produktnummer
    AND t1.Eintragsnr = 00
    ) as Mitarbeiter,
    (
    SELECT t2.Text
    FROM Tabelle t2
    WHERE t.Produktnummer = t2.Produktnummer
    AND t2.Eintragsnr = 02
    ) as Notiz,
    FROM Tabelle t
    [/highlight]

    So in etwa könnte das aussehen

    Comment


    • #3
      Verschiedene Spalten als Joins mit Alias

      [highlight="sql"]
      select
      a.Produktnummer,
      a.Text as Mitarbeiter
      b.Text as Notiz
      from
      <Tabelle> a
      join <Tabelle> b on b.Produktnummer = a.Produktnummer
      where
      a.Eintragnr = '00' and b.Eintragnr='02';
      [/highlight]

      Comment


      • #4
        Also ich hab vergessen noch ein problem mit dazuzuschreiben^^

        Die eintragsnr ist nicht immer 02 für die notiz, da können noch weitere zeilen dazwischen liegen. ich hab mir gedacht, dass man nach <notiz> suchen soll, die entsprechende eintragsnr um 1 erhöhen und dann den text dieser eintragsnr ausgeben. Oder man müsste eben abprüfen, dass er immer die zeilen nehmen soll, die zwischen der mit <notiz> und der mit </notiz> liegt, das wäre wahrscheinlich die beste methode falls es mehere zeilen sind, aber ich habe keine ahnung wie ich das implemntieren soll

        Comment


        • #5
          Hallo,
          unter der Bedingung das die Eintragsnr für Notiz zu einer Produktnummer zwischen den Eintragsnr von '<notiz>' und '</notiz>' liegen:

          [highlight=sql]
          select a.Produktnummer, a.Text Notiz
          from <Tabelle> a
          where a.Eintragsnr > (
          select Eintragsnr
          from <Tabelle> b
          where b.Produktnummer = a.Produktnummer
          and b.Text = '<notiz>'
          )
          and a.Eintragsnr < (
          select Eintragsnr
          from <Tabelle> b
          where b.Produktnummer = a.Produktnummer
          and b.Text = '</notiz>'
          )
          Order by a.Produktnummer, a.Eintragsnr
          [/highlight]

          Originally posted by ostpower View Post
          Also ich hab vergessen noch ein problem mit dazuzuschreiben^^...
          Beispieldaten sind schön und wichtig und deshalb sollten sie eben immer auch gerade die Problemfälle abdecken, sonst sind sie - wie gesehen - wertlos.

          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


          • #6
            Aber warum hast du 2 Tabellen benutzt? Es gibt ja nur eine Tabelle

            Comment


            • #7
              Originally posted by ostpower View Post
              Aber warum hast du 2 Tabellen benutzt?
              Nein hab ich nicht! Es ist immer ein und dieselbe Tabelle die abgefragt wird. Zur Unterscheidung wird sie lediglich mit unterschiedlichen Aliasen versehen.
              <Tabelle> ist immer deine EINE Tabelle.

              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