PDA

Vollständige Version anzeigen : Problem mit Abfrage


joe77
25.09.2003, 14:20
hallo beisammen,

bin hier schon ein wenig am suchen gewesen, in den faq bin ich auch nicht fuendig geweorden und rumprobiert hab ich auch schon, doch es will einfach nicht...
habe folgendes problem: in meiner db habe ich 1:n beziehungen wie z.b. eine person hat mehrere gehaelter (weil gehaltserhoehung) oder mehrere adressen (weil umzug) usw.
nun moechte ich eine abfrage, in der ich jeweils nur die aktuelle adresse/gehalt (falls es zu der person mehr als eine adresse etc gibt) ausgegeben haben moechte.
wie bewerkstellige ich das?

danke schon mal fuer die hilfe,

gruesse, joerg

J_Eilers
25.09.2003, 14:25
Hallo Joerg,

gibt es ein Feld, welches die Bedingung letzter Wert gibt?
Ansonsten schaue doch mal nach FindLast.
HTH

joe77
25.09.2003, 14:36
mein idee war forlgende:

die adressen haben einen autowert als primaerschluessel. als fremdschluessel habe ich die PIDNr aus der tabelle person.
wie kann ich den jeweils hoechsten autowert (sollte aktuellste adresse sein) fuer eine PIDNr finden?

da hakt es.

JeGr
25.09.2003, 15:11
Original geschrieben von joe77
mein idee war forlgende:

die adressen haben einen autowert als primaerschluessel. als fremdschluessel habe ich die PIDNr aus der tabelle person.
wie kann ich den jeweils hoechsten autowert (sollte aktuellste adresse sein) fuer eine PIDNr finden?

da hakt es.

Ungetestet:

SELECT gehalt FROM tabelle_gehalt, tabelle_person
WHERE tabelle_gehalt.pidnr = tabelle_person.pidnr
AND id = (SELECT max(id) FROM tabelle_gehalt WHERE pidnr = tabelle_person.pidnr)

Aber das Prinzip müsste stimmen

J_Eilers
25.09.2003, 15:18
Ungetest:
SELECT MAX (AdressenID), Gehalt
FROM tbl_Gehalt, tbl_Person
WHERE tabelle_gehalt.PersonenID = tabelle_person.PersonenID

Oh, ein bisschen spät...

joe77
25.09.2003, 15:23
danke schon mal.

wo muss ich den code denn reinschreiben?

...in den sql code... :-) (das ist neuland aber ich werde mich versuchen...)

J_Eilers
25.09.2003, 15:31
Ja es ist SQL, versuche doch sonst selber eine Abfrage zu erstellen und wählst dann in der ID Spalte die Funktion MAX (erst oben auf das E klicken). Und wenn du dann in der Ansicht auf SQL wechselst, siehst du wie dein Code exakt heissen muss.