Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: Mahi am Dezember 07, 2020, 15:08:38

Titel: die Werte nach ihrem aktuellsten Datum anzeigen lassen
Beitrag von: Mahi am Dezember 07, 2020, 15:08:38
Hallo,

Ich habe eine Tabelle in der DB, und möchte in einer Abfrage 2 Kriterien einstellen, das erste Kriterium ist, dass die Daten aus der Spalte KundenNr nach dem Datum bzw. nach ihrem aktuellstem Datum gefiltert werden.
zum Beispiel:

KundenNr   Change On
1008690      5.04.2019
1008690      9.05.2019
1008690      9.07.2019
1008690           12.10.2019

Ich will in meiner Abfrage nur die KundenNr mit ihrer letzten Änderung ( letzes Datum) anzeigen lassen.

kann jemand bitte mir helfen?

LG
Mahi
Titel: Re: die Werte nach ihrem aktuellsten Datum anzeigen lassen
Beitrag von: Beaker s.a. am Dezember 07, 2020, 15:30:26
Hallo,
Klicke in der Abfrageentwurfsansicht oben rechts mal auf das Summenzeichen.
Vielleicht bekommst du es dann selber hin. Falls dir da kein Licht aufgeht,
melde dich ruhig wieder.
gruss ekkehard
Titel: Re: die Werte nach ihrem aktuellsten Datum anzeigen lassen
Beitrag von: PhilS am Dezember 07, 2020, 16:33:07
Zitat von: Mahi am Dezember 07, 2020, 15:08:38Ich habe eine Tabelle in der DB, und möchte in einer Abfrage 2 Kriterien einstellen, das erste Kriterium ist, dass die Daten aus der Spalte KundenNr nach dem Datum bzw. nach ihrem aktuellstem Datum gefiltert werden.
Schau dir mal den Absatz Daten des letzten Kind-Datensatzes anzeigen (https://codekabinett.com/rdumps.php?Lang=1&targetDoc=abfrage-1-zu-n-aggregatfunktion-letzter-datensatz) (2. Hälfte des Textes) an. Das behandelt genau deine Fragestellung.
Titel: Re: die Werte nach ihrem aktuellsten Datum anzeigen lassen
Beitrag von: Mahi am Dezember 11, 2020, 11:40:39
Danke PhilS, das hat super funktioniert  :)
Titel: Re: die Werte nach ihrem aktuellsten Datum anzeigen lassen
Beitrag von: Mahi am Dezember 11, 2020, 12:57:53
wenn ich dieses Kriterium mit einer Wenn-Funktion kombinieren möchte, wie kann das dann funktioniern ?
z.B.
Ich will das letzte Änderungsdatumm UND Type nicht D ist , dass heißt: zeige mir das letzte Datum der KundenNr nur wenn deren Typ nicht "D" ist .

KundenNr     Change On   Type
1008690      5.04.2019    A
1008690      9.05.2019    F
1008690      9.07.2019    U
1008690      12.10.2019   D   Das muss nicht angezeigt werden, weil die letzte Änderung "D" ist
Titel: Re: die Werte nach ihrem aktuellsten Datum anzeigen lassen
Beitrag von: Beaker s.a. am Dezember 11, 2020, 16:41:24
... WHERE Tabelle.Type <> 'D'
Titel: Re: die Werte nach ihrem aktuellsten Datum anzeigen lassen
Beitrag von: Mahi am Dezember 12, 2020, 10:55:41
Das ist als eine allgemeine Antwort ganz richtig, aber hier geht's darum, wenn die letzte Änderung "D" wäre, dann muss diese KundenNr komplett nicht angezeigt werden, mit dieser Lösung was du mir geschrieben hast, wird die KundenNr mit vorherigen und alten Datum und deren Typen angezeigt.

Also das Ziel ist, wenn Typ "D" ist ( D heißt DELET ), bedeutet das, dass KundenNr wurde in der Tabelle gelöscht und wir haben keinen Kundnen mit dieser Nummer, wir wollen das in unserer Abfrage filtern und nur diejenige anzeigen, dernen Typ nicht "D" ist .

z.B.
KundenNr     Change On   Type
1008690      5.04.2019    A
1008690      9.05.2019    F
1008690      9.07.2019    U
1008690      12.10.2019   D   Dise Nummer muss nicht angezeigt werden, weil die letzte Änderung "D" ist
1009388      9.05.2019    A
1009388     10.05.2019    U Dieses Nummer muss aber wiederrum angezeigt werden, weil letzte Änderung U ist.
Titel: Re: die Werte nach ihrem aktuellsten Datum anzeigen lassen
Beitrag von: ebs17 am Dezember 12, 2020, 14:22:42
Zitatnur diejenige anzeigen, dernen Typ nicht "D" ist
SELECT
   T.*
FROM
   TabelleX AS T
WHERE
   NOT EXISTS
      (
         SELECT
            NULL
         FROM
            TabelleX AS X
         WHERE
            X.KundenNr = T.KundenNr
               AND
            X.Type = 'D'
      )
Damit wird die Tabelle auf jene Kunden reduziert, bei denen es keinen Löscheintrag gibt. Diese Abfrage kannst Du nun mit der Ermittlung des letzten Eintrages verknüpfen.
Titel: Re: die Werte nach ihrem aktuellsten Datum anzeigen lassen
Beitrag von: Mahi am Dezember 13, 2020, 20:28:11
Das hat leider nicht funktioniert, ich bekomme immer noch die Kunden mit Type 'D' angezeigt :(
Titel: Re: die Werte nach ihrem aktuellsten Datum anzeigen lassen
Beitrag von: PhilS am Dezember 13, 2020, 20:33:22
Zitat von: Mahi am Dezember 13, 2020, 20:28:11Das hat leider nicht funktioniert, ich bekomme immer noch die Kunden mit Type 'D' angezeigt :(
Zeig mal den vollständigen SQL-Text deiner Abfrage.
Titel: Re: die Werte nach ihrem aktuellsten Datum anzeigen lassen
Beitrag von: Mahi am Dezember 13, 2020, 21:07:02
SELECT Kunden.[KundenNr], Kunden.Origin, Kunden.Note, Kunden.Type, Max(Kunden.[Changed On]) AS [MaxOfChanged On], Kunden.[Changed at]
FROM Kunden
GROUP BY Kunden.[KundenNr], Kunden.Origin, Kunden.Note, Kunden.Type,
HAVING (((Kunden.Origin)="T"));