hallo,
ich habe 2 Tabellen, die 1te ist heist kunden die 2.te heist auftraege.
Tabelle: kunden
sqlpos: fortlaufende Nummer, aus sicht einer Exceltabelle Zeilennummer.(wird auch als Kundennummer verwendet)
Vorname…
Nachname…
ort…
usw
das wäre das gescheiteste. Du kannst auch einen CAST verwenden, einfach ::INT anhängen. Das wird aber heftig knallen, wenn es Werte gibt, die nicht gecastet werden können.
Merke Dir für das Leben: immer die richtigen Datentypen verwenden, und in solch einem Falle die Kundennummer in der einen Tabelle als Primary Key definieren und in der Auftragstabelle als Fremdschlüssel.
welchen der 5 Aufträge willst Du denn sehen? Den ältesten, neuesten, größten, kleinsten, durchschnittlichsten? Wenn Du aggregieren willst, so verwenden Aggregatsfunktionen in Verbindung mit GROUP BY.
thx,
hmmm, ich will NUR einen Auftrag sehen, es ist egal welcher. Mein Ziel: Ich will alle Kunden anschreiben, die mir einen Auftrag gegeben haben von dem Jahr z.B. 99.
Wenn ich richtig gegooelt habe, dann macht GROUP BY NUR die Reihenfolge.
test=*# select * from kunden ;
id | name
----+---------
1 | kunde 1
2 | kunde 2
3 | kunde3
(3 Zeilen)
test=*# select * from auftraege ;
ku | jahr
----+------
1 | 10
2 | 20
2 | 30
2 | 40
(4 Zeilen)
test=*# select distinct k.id, k.name from kunden k left join auftraege a on (k.id=a.ku);
id | name
----+---------
2 | kunde 2
3 | kunde3
1 | kunde 1
(3 Zeilen)
test=*# select distinct k.id, k.name from kunden k inner join auftraege a on (k.id=a.ku);
id | name
----+---------
2 | kunde 2
1 | kunde 1
(2 Zeilen)
test=*#
distinct <— steht für keine doppelten Ausgaben (woher weis postgres, ob keine doppelten Aufträge oder doppelten Kunden?
left join <— hänge die 2te Tabelle dran.