Ich habe zwei Tabellen. Transaktion (ID, TERMINALID) und Terminal (ID, TERMINALID, EXPORT_DATE). Das Ziel ist es, für jede Zeile von Transaktion Tabelle neueste abgerufen von Terminal Tabelle zu erhalten. Snowflake wird als Backend verwendet.Snowflake Unterabfrage
Ich habe diese SQL-Abfrage:
SELECT tr.ID,
(SELECT te.ID
FROM "Terminal" te
WHERE te.TERMINALID = tr.TERMINALID
ORDER BY te.EXPORT_DATE DESC
LIMIT 1)
FROM "Transaction" tr;
Aber ich bekomme diese Fehlermeldung:
SQL compilation error: Unsupported subquery type cannot be evaluated
Fehler verschwinden, wenn ich tr.TERMINALID mit einem bestimmten Wert zu ersetzen. Daher kann ich die Elterntabelle nicht von der geschachtelten SELECT-Anweisung referenzieren. Warum ist das nicht möglich? Abfrage funktioniert in MySQL.
Ist die Unterabfrage eine * skalare * Unterabfrage? BTW: Fügen Sie der Unterabfrage einen Spaltenalias hinzu. – wildplasser
Ja, Unterabfrage sollte einen Spaltenwert aus einer Zeile zurückgeben. Daher gibt es das LIMIT. – michal4
Fügen Sie die Tabellendefinitionen für die Tabellen zu Ihrer Frage hinzu. (Sind die Tabellenspaltennamen * wirklich * gemischt/Großbuchstaben?) – wildplasser