SQL Problem: Select Top 1 im Left Join liefert leere Resultate

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

  • SQL Problem: Select Top 1 im Left Join liefert leere Resultate

    Hallo liebe Foren Gemeinde,

    ich grübel gerade über einer SQL Abfrage und habe mehrere Lösungsansätze aus dem Ärmel geschüttelt, wobei aber nicht das rauskam was mir vorschwebte.

    Ich mache eine Abfrage über mehrere Tabellen, wobei in den Folgetabellen mehrere Resultate vorhanden sein können. Da ich aber nur das erste Resultat benötige, habe ich ein "SELECT TOP 1" eingefügt, anstatt einfach nur mit einem Left Join zu arbeiten. Benutze ich aber das TOP 1, dann sind die Felder mit den Resultaten aus der Tabelle leer.

    Zur Veranschaulichung - Beispiel:

    Code:
    SELECT *
    FROM MAME03 
    LEFT JOIN MALA02 ON MAME03.FELD04=MALA02.FELD05 
    LEFT JOIN (SELECT MALA41.FELD03,MALA41.FELD45 AS Werkstoff,MALA41.FELD62 AS Zollsatz,MALA41.FELD49 AS ZollEinfuhr, MALA41.FELD50 AS ZollAusfuhr, MALA41.FELD54 AS Ursprungsland,MALA41.FELD17 AS Laenge1, MALA41.FELD18 AS Breite1, MALA41.FELD19 AS Hoehe1, MALA41.FELD20 AS GroeEinh1, MALA41.FELD23 AS Volumen1, MALA41.FELD24 AS VolumenEinh1, MALA41.FELD25 AS Gewicht1,MALA41.FELD26 AS GewEinh1,MALA41.FELD61 AS Verpackungsart FROM MALA41) AS MALA41 ON MAME03.FELD04=MALA41.FELD03 
    WHERE MAME03.FELD03='       130'
    So kriege ich alle Sätze zurück, ich möchte aber nur den ersten haben. Die eigentliche Abfrage geht über 8 Tabellen. Dies hier oben stellt aber das grundlegende Problem dar. Schreibe ich es wie folgt, dann sind die Resultate leer:

    Code:
    SELECT *
    FROM MAME03 
    LEFT JOIN MALA02 ON MAME03.FELD04=MALA02.FELD05 
    LEFT JOIN (SELECT TOP 1 MALA41.FELD03,MALA41.FELD45 AS Werkstoff,MALA41.FELD62 AS Zollsatz,MALA41.FELD49 AS ZollEinfuhr, MALA41.FELD50 AS ZollAusfuhr, MALA41.FELD54 AS Ursprungsland,MALA41.FELD17 AS Laenge1, MALA41.FELD18 AS Breite1, MALA41.FELD19 AS Hoehe1, MALA41.FELD20 AS GroeEinh1, MALA41.FELD23 AS Volumen1, MALA41.FELD24 AS VolumenEinh1, MALA41.FELD25 AS Gewicht1,MALA41.FELD26 AS GewEinh1,MALA41.FELD61 AS Verpackungsart FROM MALA41) AS MALA41 ON MAME03.FELD04=MALA41.FELD03 
    WHERE MAME03.FELD03='       130'
    Unabhängig davon wie die SQL aussieht - das dient gerade der Veranschaulichung worum es mir geht. Werkstoff etc ist mit "Top 1" leer. Der SQL im left Join Einzeln ausgeführt gibt ein Ergebnis. Lasse ich das Top 1 weg, dann gibt es auch Ergebnisse.

    Wo habe ich den Denkfehler, kann mir jemand einen Schubs geben ?

    Gruß
Lädt...
X