Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: Sulu am Juli 21, 2010, 14:08:53

Titel: Accesabfrage: Zellen vergleichen
Beitrag von: Sulu am Juli 21, 2010, 14:08:53
Hallo Leute,

ich sitze gerade an einer Abfrage, mit der ich den aktuellsten Datensatz aus tabelle b zu einem anderen Datensatz aus Tabelle a (1:N-Beziehung) anzeigen lassen will. Das will ich simultan für alle Datensätze aus Tabelle a machen (Also von b nur den neusten Eintrag zu einem Datensatz aus a). Ich habe die Tabelle erstmal so sortiert, dass immer die ID aus a hitereinander steht und immer der neuste eintrag der unterste ist.
Jetzt wollte ich nur noch die alten Datensätze ausblenden.

Es wäre nett, wenn mir da jemand weiterhelfen könnte.

Liebe Grüße
Sulu
Titel: Re: Accesabfrage: Zellen vergleichen
Beitrag von: database am Juli 21, 2010, 15:46:14
Hallo,

dazu wären ein paar weiterführende Infos recht hilfreich.

Zitattabelle b zu einem anderen Datensatz aus Tabelle a (1:N-Beziehung)
Welche Tabelle steht auf der 1 Seite?

ZitatIch habe die Tabelle erstmal so sortiert, dass immer die ID aus a hitereinander steht und immer der neuste eintrag der unterste ist
Woran wird die Aktualität der Datensätze gemessen?
Wie heissen die Felder und was steht da drin (Datentyp)
Titel: Re: Accesabfrage: Zellen vergleichen
Beitrag von: Sulu am Juli 21, 2010, 15:54:13
Also die Tabelle a ist die haupttabelle zu der mehrere Einträge aus tabelle b wichtig sind. Sollte aber auch nur verdeutlichen, dass ich nicht einen einzigen Datensatz aus der Tabelle b brauche sonder zu jedem Datensatz aus Tabelle a den aktuellsten aus der Tabelle b, soweit einer vorhanden ist. gemessen wird die Aktualität an einem Datum. Dieses ist immer kleiner oder gleich zum heutigen Datum, kann sich aber zueinander unterscheiden. z.B. ist der neuste bei einem von heute und bei nem anderen von vllt. 1999. bei einem 3. irgendwo dazwischen, gehören aber nicht zum selben Datensatz aus Tabelle a.
Ich habe jedenfalls schonmal so sortiert, dass die Datensätze von einem Datensatz aus a zusammenstehen und der unterste eintrag davon der aktuellste ist. Also eigentlich muss ich jetzt aus folgender Tabelle

Datensatzzugehörigkeit tabelle a
a
a
a
b
c
c
d
d
d

folgende Tabelle generieren:
a
b
c
d
Titel: Re: Accesabfrage: Zellen vergleichen
Beitrag von: Sulu am Juli 22, 2010, 09:45:37
Hallo nochmal,

ich versuche meine Abfrage gerade mit nem GROUP BY zu machen, allerdings sagt der mir immer was von fehlendem Operator bei "T_Protocol.TE_ID
WHERE (((T_Protocol.P_Date) Is Not Null) AND ((T_Protocol.P_Ergebniss)="IO"))"

SELECT ID, Max(Datum) AS Datum1
FROM meineTabelle
GROUP BY ID
WHERE (((Datum) Is Not Null) AND ((Ergebnis)="IO"))
ORDER BY ID, Datum;


kann mir wer sagen, woran das liegt?

Greets
euer
Sulu
Titel: Re: Accesabfrage: Zellen vergleichen
Beitrag von: database am Juli 22, 2010, 10:34:59
Hallo,

die Abfrage sollte so funktionieren:


SELECT T_Protocol.TE_ID, Max(T_Protocol.P_Date) AS Datum1
FROM T_Protocol
GROUP BY T_Protocol.TE_ID, T_Protocol.P_Ergebnis
HAVING (Max(T_Protocol.P_Date) Is Not Null) AND (T_Protocol.P_Ergebnis="IO");


Greets Peter
Titel: Re: Accesabfrage: Zellen vergleichen
Beitrag von: database am Juli 22, 2010, 10:49:42
Hallo,

zu deiner ersten Frage ein kleine Demo-DB im Anhang mit 2 Tabellen und einer Abfrage

HTH

Peter

[Anhang gelöscht durch Administrator]
Titel: Re: Accesabfrage: Zellen vergleichen
Beitrag von: Sulu am Juli 22, 2010, 10:57:53
Danke, database. Es geht schon weiter als vorher. jetzt gibt er mir allerdings folgenden Fehler aus:
(http://www.pictureupload.de/originals/pictures/220710105532_Fehler.bmp)
Titel: Re: Accesabfrage: Zellen vergleichen
Beitrag von: Sulu am Juli 22, 2010, 11:12:12
Hallo Database,

ich habe gerade mal deine Demo-version umgesetzt. den Teil, der mir Probleme gemacht hat, geht jetzt. Jetzt muss ich das nur noch mit Sinn füllen :D
Danke für deine Hilfe.

Greets
Sulu
Titel: Re: Accesabfrage: Zellen vergleichen
Beitrag von: database am Juli 22, 2010, 11:23:19
Hallo,

zur Fehlermeldung:

Da muß dir beim Schreiben oder Kopieren was passiert sein - Not Max(T_Protocol.P_Date) ...  kommt in meinem Lösungsvorschlag NICHT vor.
HAVING (Max(T_Protocol.P_Date) Is Not Null) AND (T_Protocol.P_Ergebnis="IO");
ist richtig  ;)
Titel: Re: Accesabfrage: Zellen vergleichen
Beitrag von: Sulu am Juli 22, 2010, 11:27:01
Zitat von: database am Juli 22, 2010, 11:23:19
Da muß dir beim Schreiben oder Kopieren was passiert sein - Not Max(T_Protocol.P_Date) ...  kommt in meinem Lösungsvorschlag NICHT vor.
HAVING (Max(T_Protocol.P_Date) Is Not Null) AND (T_Protocol.P_Ergebnis="IO");
ist richtig  ;)

Kann schon sein. Aber ich habe jetzt die Abfrage anders gestaltet und kann das jetzt leider nicht mehr nachvollziehen. Kann es nicht auch sein, dass Access das umschreibt?

LG
Sulu

PS: nochmals Danke ^^
Titel: Re: Accesabfrage: Zellen vergleichen
Beitrag von: database am Juli 22, 2010, 11:58:06
Hallo - wenns jetzt läuft, ist es eigentlich egal ... 

Aber dass Access das selbst ändert ...  tja wer weiß ...  ???

Grüße

Peter