Join Subquery, Order by uvm...

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

  • Join Subquery, Order by uvm...

    Hallo,
    mein code schaut wie folgt aus

    PHP-Code:
    $sql "SELECT K.[NUMMER], K.[TEXT], " .
                  
    "TGB.[TEXT], [ARTIKEL_STAMM].[ARTNR], A.[EK_1], A.[PE], [ARTIKEL_STAMM].[C10] FROM [ARTIKEL_STAMM] " .
                  
    "LEFT JOIN [SERIEN_NUMMERN] as SN ON(SN.[ARTNR] = [ARTIKEL_STAMM].[ARTNR]) " .
                  
    "LEFT JOIN [TEGEBE] as TGB ON (TGB.[SERIAL] = SN.[SERIAL]) " .
                  
    "LEFT JOIN [SCHLUESSEL] as K ON (K.[NUMMER] = TGB.[SCHLUESSEL]) " .
                  
    "LEFT JOIN [ARTIKEL_LIEFERANT] as A ON (A.[ARTNR] = [ARTIKEL_STAMM].[ARTNR]) " .   
                  
    "INNER JOIN (SELECT TOP 1 DATUM, AUFTRAGS_NR, ARTNR FROM (SELECT DATUM, AUFTRAGS_NR, ARTNR FROM ARTIKEL_KARTEI WHERE ARTIKEL_KARTEI.ARTNR = A.ARTNR) as IT ORDER BY IT.DATUM) as S ON( S.ARTNR = A.ARTNR) " .
                  
    "WHERE SN.[STATUS] = 5 AND K.[ART] = 'X0' AND K.[NUMMER] IN(1, 980, 985, 1110, 1150, 1155, 1160, 1170, 1175, 1320, 2000) ORDER BY [ARTIKEL_STAMM].[C10], [ARTIKEL_STAMM].[ARTNR]"

    Unabhängig jetzt mal davon, was die letzte WHERE Klausel beinhaltet:
    ich möchte von einem Artikel [ID: ARTNR] in der Tabelle ARTIKEL_KARTEI einen Eintrag finden, dessen Datum am höchsten ist und davon ebene von einem Artikel immer nur ein Resultat!
    In der Kartei-Tabelle stehen tausende von Anlieferungen und ich möchte eben die letzte Anlieferung wissen!

    Die Abfrage liefert mir allerdings:
    [COLOR=red]
    Warning: mssql_query() [function.mssql-query]: message: Das Spaltenpräfix 'A' stimmt mit keinem in der Abfrage verwendeten Tabellen- oder Aliasnamen überein. (severity 16) in D:\intranet\new_cms\fapi\CDatabase.php on line 655[/COLOR]

    Kann mir da jemand helfen?
    Find Parties?
    Partysuche

  • #2
    FROM [ARTIKEL_STAMM] as A

    Kommentar


    • #3
      nein, ich denke A ist schon [ARTIKEL_LIEFERANT]


      Die [ARTIKEL_STAMM] - Felder spricht er ja immer mit [ARTIKEL_STAMM] an...


      aber irgendwo anders musst du die Felder und Aliasnamen wohl vertauscht haben aber ohne tabellenstrucktur seh ich das auch nicht
      signed oder unsigned... das ist hier die Frage

      Kommentar


      • #4
        Die Struktur ist glaub ich zu komplex um sie hier zu erwähnen! Damit würde ich zu viel Zeit von Euch rauben :-D

        ich splitte nun alles auf:

        aber wie bekomme ich dann folgendes Problem gebacken?

        SELECT ARTNR, AUFTRAGS_NR, MAX(DATUM) FROM dbo_ARTIKEL_KARTEI GROUP BY ARTNR, AUFTRAGS_NR

        liefert mir eine Tabelle, wo alle ARTNR drin sind, dazu mit der Auftragsnr und dazu das letzte datum.
        Ich will allerdings nur, dass mir alle "Bestellungen" (zu jeder ARTNR) zurückgibt mit dem neuesten Datum und dazu dann die Auftragsnummer.
        Beispiel:
        [FONT=courier new]
        ARTNR AUFTR.NR. DATUM
        001 1234 10.2.07
        002 5842 15.8.07
        002 3729 20.8.07
        003 8558 25.6.06
        [/FONT]

        RESULTAT:
        [FONT=courier new]
        001 1234 10.2.07
        002 3729 20.8.07
        003 8558 25.6.06
        [/FONT]
        Find Parties?
        Partysuche

        Kommentar


        • #5
          Dann darfst du nicht nach AUFTRAGS_NR gruppieren. Musst dann aber eine Subquery machen! um das Feld wieder in die Ausgabe hinein zu bekommen!

          Kommentar


          • #6
            Okay, das habe ich auch gemerkt, aber es funktioniert nicht :-( :

            SELECT AUFTRAGS_NR, ARTNR FROM( SELECT ARTNR as ANR, MAX(DATUM) as D FROM dbo_ARTIKEL_KARTEI GROUP BY ANR) as V INNER JOIN
            dbo_ARTIKEL_KARTEI as K ON(K.ARTNR = V.ANR AND K.DATUM = V.D)
            Find Parties?
            Partysuche

            Kommentar


            • #7
              Was auch immer du mit
              es funktioniert nicht
              meinst
              Fehlermeldung? Falsche Ergebnisse?

              Kommentar


              • #8
                Ja ich weiß, sorry!

                Also Access bringt: [COLOR=crimson]Syntaxfehler im FROM-Abschnitt![/COLOR]
                Find Parties?
                Partysuche

                Kommentar


                • #9
                  erlaubt Access Subqueries? weiß ich jetzt net!
                  Sonst versuch mal ein Leerzeichen zwischen FROM und (

                  Kommentar


                  • #10
                    Hey, merci dir für den Tipp!
                    Access ist ja mal der letzte Schrott, den ich kenne!
                    Sowas wie: "Subqueries werden in Access leider nicht unterstützt" gibt's nicht... des wär ja viel zu viel Arbeit!

                    Danke NOCHMAL!
                    Find Parties?
                    Partysuche

                    Kommentar

                    Lädt...
                    X