Hallo zusammen,
ich möchte gerne über einen Join einen Datensatz finden, bei dem der geringste Preis gilt.
Die SQL-Query sieht derzeit wie folgt aus und findet 3 Datensätze:
SELECT
image.name,
object.name,
object.city,
region.region,
region.description,
charge.charge,
charge.unit,
image.description,
object.id
FROM
public.image,
public.object,
public.region,
public.charge
WHERE
object.region_id = region.id AND
object.id = image.object_id AND
object.id = charge.object_id AND
object.id = 1 AND
image.gallery = 1;
Die min()-Funktion möchte ich auf das Attribut charge.charge anwenden. Wenn ich nun allerdings die Quert wie folgt verändere, erhalte ich einen Fehler:
SELECT
image.name,
object.name,
object.city,
region.region,
region.description,
min (charge.charge),
charge.unit,
image.description,
object.id
FROM
public.image,
public.object,
public.region,
public.charge
WHERE
object.region_id = region.id AND
object.id = image.object_id AND
object.id = charge.object_id AND
object.id = 1 AND
image.gallery = 1;
ERROR: column "image.name" must appear in the GROUP BY clause or be used in an aggregate function
SQL state: 42803
Character: 11
Könnt ihr mir bitte auf die Sprünge helfen, wo mein Denkfehler liegt. Danke.