komplizierte Anfrage an merkwürdiger Datenbank

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • #16
    Was genau meinst du denn mit "ON Klausel" bzw. was würde das denn ändern?

    Hab mal einen weiteren (verzweifelten) Versuch gestartet:

    SELECT DISTINCT p.enderzeugnis, h.ArbPlatz, i.ArbPlatz
    FROM [Gesamtstrukturstüli Ebene 1-6 gruppiert] AS p, [04 Fertigungsaufträge_gesamt] AS h, [04 Fertigungsaufträge_gesamt] AS i
    WHERE p.enderzeugnis=h.Material And IIf(IsNull(p.[besteht aus (Ebene 1)]),"",p.[besteht aus (Ebene 1)]=i.material);

    Dabei schmiert mir aber das Programm ab....achso, die rechte DB hat 880000 Einträge und die rechte nur 150000. Irgedwie glaube ich, dass mir ohne "Bereinigung" der DB das Programm weiterhin abschmiert. Und es schmiert ja wie oben schon bei zwei Joins ab....ohje, ich komme irgendwie nicht weiter

    JCD
    Zuletzt geändert von JCDenton; 29.04.2008, 23:16.

    Kommentar


    • #17
      Theorie: http://de.wikipedia.org/wiki/Relationale_Algebra#Join
      Praxis: http://msdn.microsoft.com/en-us/library/bb208854.aspx ff

      Kommentar


      • #18
        Also ich hab jetzt einen Versuch mit der ON Klausel:

        SELECT DISTINCT p.enderzeugnis, h.Material, h.ArbPlatz
        FROM [Gesamtstrukturstüli Ebene 1-6] AS p
        INNER JOIN [04 Fertigungsaufträge_gesamt] AS h ON p.enderzeugnis=h.Material ;

        Das klappt auch, nur wie bringe ich da jetzt die Ebenen 1-6 da rein?

        JCD

        Kommentar


        • #19
          SELECT ...
          FROM ...
          JOIN ... ON ...
          JOIN ... ON ...
          JOIN ... ON ...
          ...

          Kommentar


          • #20
            Wie kann ich denn sicherstellen, dass ich beim zweiten JOIN auch die p-te Ebene 1 des gleichen p-ten Enderzeugnisses bekomme?

            Beim Verschachteln gibts ein Problem:

            Bei der Abfrage:

            SELECT DISTINCT p.enderzeugnis, h.Material, h.ArbPlatz, i.ArbPlatz
            FROM [Gesamtstrukturstüli Ebene 1-6] AS p
            INNER JOIN [04 Fertigungsaufträge_gesamt] AS h ON p.enderzeugnis=h.Material
            INNER JOIN [04 Fertigungsaufträge_gesamt] AS i ON p.[besteht aus (Ebene 1)]=i.Material ;

            liefert mir Access einen Syntaxfehler. Weißt du vielleicht woran das liegt bzw. was mache ich noch verkehrt?

            JCD
            Zuletzt geändert von JCDenton; 30.04.2008, 00:07.

            Kommentar


            • #21
              Argh, egal wie ich es probiere, es klappt immernoch nicht
              Kann mir vielleicht jemand meinen Code für die Spalte p.[besteht aus (Ebene 1)] mit der Bedingung "p.[besteht aus (Ebene 1)]=i.Material" erweitern? Wenn ich sehe wien das syntaktisch korrekt funktioniert bekomme ich das für die restlichen 2-6 auch hin.

              JCD

              Kommentar


              • #22
                Such in dem zuletzt genannten Link "You can also nest JOIN statements using the following syntax".

                Kommentar


                • #23
                  Hab ich schon versucht....

                  Aber der liefert mir immer einen Syntaxfehler!

                  Also ich hab zwei funktionierende SQL Befehle die ich miteinanderverbinden möchte.

                  SELECT DISTINCT p.enderzeugnis, h.Material, h.ArbPlatz
                  FROM [Gesamtstrukturstüli Ebene 1-6] AS p INNER JOIN [04 Fertigungsaufträge_gesamt] AS h ON p.enderzeugnis=h.Material;


                  SELECT DISTINCT p.enderzeugnis, p.[besteht aus (Ebene 1)], h.Material, h.ArbPlatz
                  FROM [Gesamtstrukturstüli Ebene 1-6] AS p INNER JOIN [04 Fertigungsaufträge_gesamt] AS h ON p.[besteht aus (Ebene 1)]=h.Material;

                  Welche Anfrage muss ich denn welche verschachteln?
                  Muss ich von innen (beginnend von Ebene6-1) nach außen (Enderzeugnis verschachteln oder wie funktioniert das?

                  Sorry für die viele Fragerei, aber da hapert es mit dem Verständins.

                  JCD

                  Kommentar


                  • #24
                    Bin nochmal.

                    Der Parser von Access geht mir auf die Nerven:

                    Ich kann wirklich nichts syntaktisch falsches an diesem Ausdruck finden:

                    SELECT DISTINCT h.Arbpl, p.[Enderzeugnis (Ebene 0)], h.Materialnummer
                    FROM [AP Gesamt] AS h INNER JOIN [Gesamtstrukturstückliste (Ebene 0-6, gruppiert) endgültig] AS p
                    ON h.Materialnummer=p.[Enderzeugnis (Ebene 0)] AND
                    ON h.Materialnummer=p.[besteht aus (Ebene 1)];

                    Der Parser liefert mir folgenden Fehler: Syntaxfehler (fehlender Operator) in Abfrageausdruck ".

                    Dabei hab ich mich strikt an diese Syntax gehalten:

                    SELECT fields
                    FROM table1 INNER JOIN table2
                    ON table1.field1 compopr table2.field1 AND
                    ON table1.field2 compopr table2.field2) OR
                    ON table1.field3 compopr table2.field3)];

                    Kann mir bitte jemand kurz sagen wie ich den Ausdruck so hinbekomme, dass Access diesen auch akzeptiert?

                    JCD

                    Kommentar


                    • #25
                      Ich habe keine Ahnung von Access, aber ich rate mal ins Blaue hinein: Semikolon am Ende weglassen, Teilausdrücke weglassen bzw. vereinfachen, (DISTINCT weg, SELECT *), Spaltennamen in Backticks setzen, ... bis es funktioniert.

                      Kommentar


                      • #26
                        @TS, schaue dir den Syntax von INNER JOIN mal an, seitwann kann man mehr als ein Schlüsselwort ON bei einem JOIN angeben? Und vergiss den Tipp von dem Nerd

                        Kommentar


                        • #27
                          Das mit den mehreren ON's hab ich hierher:

                          http://office.microsoft.com/en-us/ac...322411033.aspx

                          JCD

                          Kommentar


                          • #28
                            Tja, ich würde dem Parser mehr Glauben schenken, als ...

                            Du kannst natürlich darauf bestehen, dass du rechthast, aber ob dir das weiter hilft

                            Kommentar


                            • #29
                              Allein schon an den Klammern ist zu sehen, dass diese Angaben falsch sind
                              Gruss
                              H2O

                              Kommentar

                              Lädt...
                              X