SQL-select aus einer Tabelle der gemeinsamen Tabellen
Ich bin SQL-Anfänger und ich brauche, um herauszufinden, diese Anfrage: ich habe drei Tabellen zusammen, aus denen ich zähle bestimmten Wert, so:
SELECT SEATS_MAX-COUNT(BOOKING_ID)
FROM FLIGHTS
INNER JOIN PLANES ON FLIGHTS.PLANE_ID=PLANES.PLANE_ID
LEFT JOIN BOOKINGS ON FLIGHTS.FLIGHT_ID=BOOKINGS.FLIGHT_ID
GROUP BY SEATS_MAX;
Diese gibt die Anzahl der freien Plätze in einem Flug. Ich würde aber gerne alle Spalten von FLÜGEN (wie in SELECT * FROM FLIGHTS;
) plus die Anzahl. also so etwas wie
SELECT FLIGHTS.*, SEATS_MAX-COUNT(BOOKING_ID)
FROM FLIGHTS
INNER JOIN PLANES ON FLIGHTS.PLANE_ID=PLANES.PLANE_ID
LEFT JOIN BOOKINGS ON FLIGHTS.FLIGHT_ID=BOOKINGS.FLIGHT_ID
GROUP BY SEATS_MAX;
aber das funktioniert nicht (Ungültiger Benutzer.Tabelle.Spalte, Tabelle.Spalte oder Spalte Spezifikation). Gibt es eine Möglichkeit, dies zu erreichen? Ich bin mit der Oracle-db.
Dank
InformationsquelleAutor Martin Melka | 2013-10-24
Du musst angemeldet sein, um einen Kommentar abzugeben.
In der group by müssen Sie alle Spalten, die nicht aggregiert.
Sodass Sie die Abfrage so zu werden:
Edit:
Um eine Liste aller Spalten, die Sie der Tabelle können Sie die folgende Abfrage verwenden
Sollte dies machen Sie Ihr Leben ein bisschen einfacher, dann kopieren und fügen Sie
nicht wirklich, Sie brauchen, um Sie aufzulisten, füge ich eine kleine Abfrage, die Ihnen helfen können, um eine Liste aller Spalten
InformationsquelleAutor mucio
Sieht das ein allgemeiner Fehler, sql-Anfänger. bitte beachten Sie, dass bei Verwendung der group by-Klausel auf einige Spalten (in deinem Fall SEATS_MAX), die meisten Datenbanken erlauben nicht, dass Sie zum hinzufügen weiterer Spalten in der select-Klausel außer aggregation auf SEATS_MAX wie count(SEATS_MAX), max(SEATS_MAX) und so weiter.
Dies ist, weil Ihre Daten wurden gruppiert nach SEATS_MAX so das Ergebnis hängt von jeder Gruppe. eine Gruppe von Daten, die eine gleiche SEATS_MAX Wert, die Werte der Flug Tabellenspalten (FLÜGE.*) sind nicht unbedingt die gleichen. Also Datenbanken, die nicht wissen, welche Werte zurückgeben.
InformationsquelleAutor danny
Sollte dies funktionieren:
InformationsquelleAutor Lawrence Lopez