Announcement

Collapse
No announcement yet.

wer kann folgendes Script erweitern?

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

  • wer kann folgendes Script erweitern?

    Hallo ihr Experten,
    ich bin neu hier im Forum und ebenfalls neu im "SQL-Land" -
    und gleich tut sich ein großes Problem für mich auf.
    Wir arbeiten in der Firma mit einer Oracle-Datenbank.
    In einer Relation (relAb) stehen Daten die miteinander
    verknüpft werden sollen.
    Die Datenfelder haben folgenden Inhalt.
    (siehe Anlage)
    Ich habe ein Script, welches mir die Daten der ersten beiden
    (Stufen) (Gruppen) auflistet.

    SELECT relab.rlnr
    ab2.mnr,
    ab2.saint,
    ab2.tr
    FROM relab relab,
    relab ab2
    WHERE relab.mnr = ab2.rlnr(+)
    AND relab.rlnr = '603102296'
    AND ab2.saint <> '65'


    Leider werden nicht die restlichen Datensätze aufgegriffen.
    (siehe Anlage)
    Wer von euch kann mir das Script erweitern, damit alle Datensätze
    angezeigt werden?
    Ich hoffe, mein Problem ist einigermaßen verständlich rüber gekommen.
    Hat jemand eine Idee?
    Vielen Dank im voraus.

    Gruss
    Andrea
    Attached Files

  • #2
    Hallo Andrea,

    vielleicht solltest du das Bild im Anhang etwas vergrößern oder genauer Erläutern was du machen möchtest. Ich kann zumindest auf dem Bild nichts erkennen

    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
      Originally posted by Falk Prüfer View Post
      Hallo Andrea,

      vielleicht solltest du das Bild im Anhang etwas vergrößern oder genauer Erläutern was du machen möchtest. Ich kann zumindest auf dem Bild nichts erkennen

      Gruß Falk
      - Ganz nett wären natürlich die Create Scripts dafür :-)

      Gruss

      Comment


      • #4
        Anhang jetzt grösser ?

        Hallo Falk,
        ist der Anhang jetzt grösser ?
        Attached Files

        Comment


        • #5
          SELECT relab.rlnr,
          ab2.mnr,
          ab2.saint,
          ab2.tr
          FROM relab relab,
          relab ab2
          WHERE relab.mnr = ab2.rlnr(+)
          AND relab.rlnr = '603102296'
          AND ab2.saint(+) <> '65';

          aber auch das halte ich für nicht dass, was du willst. Beschreibe doch mal was du willst (mit Worten).

          Comment


          • #6
            Hallo Andrea,

            die Grafiken sind jetzt besser

            Mit deiner Einschränckung "AND ab2.saint <> '65' " setzt du den Outer-Join (relab.mnr = ab2.rlnr(+)) wieder ausser Kraft, so daß die "restlichen" Daten nicht mit selektiert werden.
            Als Abhilfe gibt es zwei Varianten. Die erste hat uminky bereits aufgezeigt. Die zweite wäre mit einer Inline-View zu arbeiten:
            [highlight=sql]
            SELECT relab.rlnr, ab2.mnr, ab2.saint, ab2.tr
            FROM relab relab,
            (select i.rlnr, i.mnr, i.saint, i.tr
            from relab i
            where i.saint <> '65') ab2
            WHERE relab.mnr = ab2.rlnr(+)
            AND relab.rlnr = '603102296'
            [/highlight]

            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


            • #7
              Script erweitern

              Hallo Falk,
              vielen Dank für deine Antwort und für deine Hilfe.
              Ich habe dein Script ausprobiert.
              Es läuft auch sauber durch.
              Folgendes ist dabei rausgekommen.
              (siehe Anlage)
              Leider werden die restlichen Stufen nicht angezeigt.
              Hast du noch eine Idee?

              Gruss
              Andrea
              Attached Files

              Comment


              • #8
                Hallo Andrea,

                vielleicht solltest du jetzt doch mal erläutern WAS du genau an Daten hast, was du damit machen möchtest und welches Ergebnis du erwartest. Rückschlüsse auf die Aufgabenstellung aus einem (fehlerhaften) Statement zu ziehen ist äußerst schwierig Evtl. ist ja der Join falsch, aber das kann ich nicht beurteilen, wenn ich die Aufgabenstellung nicht kenne.

                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


                • #9
                  Script erweitern

                  Hallo Falk,
                  ich werde jetzt mal versuchen das Problem zu umschreiben.
                  Es handelt sich hierbei um eine Stücklistenauflösung.
                  Die Daten der Stückliste befinden sich in einer Oracle-Datenbank.
                  IN der Relation (relAb)
                  In dieser Relatiom (relAb) heißen die relevanten Datenbankfelder RLNR, MNR, SAINT, TR
                  Sie enthalten folgenden Inhalt:
                  (siehe Anlage 1.zip)
                  Das Fertigteil (Endprodukt) 603102296 (A1) besteht aus mehreren Einzelteilen.
                  Aus dem Einzelteil 593102296 (B5) das zum Fremdleistungsbetrieb 2727 (B4) geht und dort
                  eine Oberfläche FR600000 (B3) bekommt.

                  Das Einzelteil 593102296 (A7) besteht aus dem Einzelteil 583102296 (B10)
                  welches auf der Maschine AP74496 (B9) gelocht bzw. auf der Maschine AP6200 (B8) gewalzt wird.

                  Das Einzelteil 583102296 (A12) besteht aus dem Einzelteil 573102296 (B15) das zum
                  Fremdleistungsbetrieb 2490 (B14) geht und dort eine Oberfläche FR300000 (B13) bekommt.

                  usw.

                  Ich möchte gerne eine Stücklistenauflösung erreichen, die folgendermassen aussieht:

                  Hauptteil Einzelteil Satzart TR
                  603102296 FR600000 60 5
                  603102296 593102296 90 0
                  603102296 AP69200 60 0
                  603102296 AP74496 60 15
                  603102296 583102296 90 0
                  603102296 FR300000 60 5
                  603102296 573102296 90 0
                  603102296 AP76040 60 30
                  603102296 563102296 90 0
                  603102296 FR100100 60 5
                  603102296 553102296 90 0
                  603102296 AP75030 60 10
                  603102296 AP73185 60 20
                  603102296 AP73185 60 20
                  603102296 AP70200 60 60
                  603102296 AP70600 60 80
                  603102296 100000226 90 0

                  Das Problem dabei ist, die Inhalte der beiden Datenbankfelder RLNR und MNR richtig miteinander zu verknüpfen,
                  um an das gewünschte Ergebnis zu kommen.

                  Ich hoffe mein Problem ist einigermassen verständlich rübergekommen.

                  Hast du noch eine Idee?

                  Vielen Dank im voraus.

                  Gruss
                  Andrea
                  Attached Files

                  Comment


                  • #10
                    Originally posted by Ulrich Vaid View Post
                    - Ganz nett wären natürlich die Create Scripts dafür :-)

                    Gruss
                    Hallo Ulrich,
                    etwas weiter unten habe ich versucht mein Problem in Worten zu fassen.

                    Gruss
                    Andrea

                    Comment


                    • #11
                      Originally posted by AndreaK View Post
                      ...Ich hoffe mein Problem ist einigermassen verständlich rübergekommen.

                      Hast du noch eine Idee?...
                      Hallo Andrea,
                      so langsam glaube ich zu verstehen was du erreichen möchtest. Eine Idee habe ich auch, aber dafür wär es schön du könntest mir die Insert-Statements für die Testdaten schicken (damit ich probieren und gleich testen kann) oder wenigstens den Teil der Exceltabelle im Original zum rauskopieren. Sonst muß ich das alles vom Bild abtippen und dazu fehlt mir die Lu... äh Zeit

                      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


                      • #12
                        Test-Datei

                        Hallo Falk,
                        vielen Dank für deine Rückmeldung.
                        Im Anhang sende ich dir die Datei zum Testen.
                        Viel Glück.

                        Liebe Grüsse
                        Andrea
                        Attached Files

                        Comment


                        • #13
                          Hallo Andrea,

                          die folgende Abfrage sollte genau das liefern was du möchtest:
                          [highlight=sql]
                          select rab.* from (
                          select * from relab
                          where rlnr != mnr and saint != 65) rab
                          CONNECT by PRIOR rab.mnr = rab.rlnr
                          START with rab.rlnr = '603102296'
                          [/highlight]

                          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


                          • #14
                            Danke !

                            Hallo Falk,
                            vielen, vielen Dank für das Script.
                            Es ist super.
                            Eine Frage hätte ich noch.
                            Ich habe das Script folgendermassen geändert.

                            SELECT rab.rlnr,
                            rab.mnr,
                            rab.saint,
                            rab.tr
                            FROM (SELECT * FROM relab
                            WHERE rlnr != mnr
                            AND saint != 65) rab
                            CONNECT BY PRIOR rab.mnr = rab.rlnr
                            START WITH rab.rlnr >= '603102296' AND
                            rab.rlnr <= '603102298'
                            ORDER BY rab.rlnr DESC, mnr DESC

                            Dabei ist folgendes rausgekommen:
                            (siehe Anlage)

                            Wie bekomme ich es hin, das mir nur die MNR - Felder mit dem Inhalt "FR%"
                            angezeigt bekomme.

                            RLNR

                            Comment


                            • #15
                              Danke !

                              Hallo Falk,
                              vielen, vielen Dank für das Script.
                              Es ist super.
                              Eine Frage hätte ich noch.
                              Ich habe das Script folgendermassen geändert.

                              SELECT rab.rlnr,
                              rab.mnr,
                              rab.saint,
                              rab.tr
                              FROM (SELECT * FROM relab
                              WHERE rlnr != mnr
                              AND saint != 65) rab
                              CONNECT BY PRIOR rab.mnr = rab.rlnr
                              START WITH rab.rlnr >= '603102296' AND
                              rab.rlnr <= '603102298'
                              ORDER BY rab.rlnr DESC, mnr DESC

                              Dabei ist folgendes rausgekommen:
                              (siehe Anlage)

                              Wie bekomme ich es hin, das mir nur die MNR - Felder mit dem Inhalt "FR%"
                              angezeigt bekomme.

                              RLNR MNR SAINT TR
                              603102296 FR600000 60 5
                              583102296 FR300000 60 5
                              563102296 FR100100 60 5

                              Hast du noch eine Idee?

                              Gruss
                              Andrea
                              Attached Files

                              Comment

                              Working...
                              X