Ich bin ein nicht so versierter Access-User und brauche daher eure
Hilfe!
In einer Tabelle habe ich die Spalten:
Kundennummer, Name, Datum, Info (=Textfeld)
Zu einer Kundennummer werden normalerweise mehrere Datensätze an
unterschiedlichen Tagen (Datum) erfasst. Mittels einer Abfrage möchte
ich nun den Datensatz mit dem aktuellsten Datum ausgeben also den
aktuellsten Eintrag pro Kunde.
Wie kann ich meine Anforderung mit einer ganz Abfrage lösen ohne dass
ich großartig programmieren muß?
Bitte um Hilfe!!
VIELEN DANK
wolfgang...@rb-32939.raiffeisen.at wrote:
> In einer Tabelle habe ich die Spalten:
>
> Kundennummer, Name, Datum, Info (=Textfeld)
>
> Zu einer Kundennummer werden normalerweise mehrere Datensätze an
> unterschiedlichen Tagen (Datum) erfasst. Mittels einer Abfrage möchte
> ich nun den Datensatz mit dem aktuellsten Datum ausgeben also den
> aktuellsten Eintrag pro Kunde.
>
> Wie kann ich meine Anforderung mit einer ganz Abfrage lösen ohne dass
> ich großartig programmieren muß?
SELECT Kundennummer, Name, Datum, Info
FROM DeineTab AS T1
WHERE T1.Datum In
(SELECT Max(Datum)
FROM DeineTab AS T2
WHERE T2.Kundennummer = T1.Kundennummer)
Gruss - Peter
--
Ich beantworte keine Fragen per Email.
Mitglied im http://www.dbdev.org
FAQ: http://www.donkarl.com
wolfgang...@rb-32939.raiffeisen.at wrote:
> Kundennummer, Name, Datum, Info (=Textfeld)
> Zu einer Kundennummer werden normalerweise mehrere Datensätze an
> unterschiedlichen Tagen (Datum) erfasst. Mittels einer Abfrage möchte
> ich nun den Datensatz mit dem aktuellsten Datum ausgeben also den
> aktuellsten Eintrag pro Kunde.
>
> Wie kann ich meine Anforderung mit einer ganz Abfrage lösen ohne dass
> ich großartig programmieren muß?
Eine Lösung hat Peter dir ja bereits gegeben; erlaube mir noch den Hinweis,
dass Du die Felder Name und Datum umbenennen solltest, da diese zu den
reservierten Wörtern gehören. Mehr dazu kannst Du u.a. hier lesen :
http://support.microsoft.com/kb/286335/en-us
--
Gruss
Jens
______________________________
FAQ: http://www.donkarl.com
10. Access-Entwickler-Konferenz (AEK)
Nürnberg 6./7.10.2007 und 20./21.10.2007
http://www.donkarl.com/?AEK
Vielen Dank für deine Antwort Peter!
Wie gesagt, ich nutze Access eher oberflächlich und weiß daher nicht,
wo genau ich das Eintragen muß.
Bitte um Info!
Vielen DANK - Wolfgang
Was Peter dir schrieb ist SQL-Text (der eine sog. Unterabfrage
enthält). Die Entwurfsansicht einer Access-Abfrage ist nur ein
grafischer Assistent. Die Abfrage besteht eigentlich aus
SQL-Text. Deshalb hat jede Abfrage auch eine SQL-Ansicht.
Vorgehen:
- neue Abfrage erstellen
- in der Entwurfsansicht Menü Ansicht/SQL-Ansicht wählen
- Peters SQL-Text in diese Ansicht hineinkopieren. Falls in der
SQL-Ansicht schon etwas steht, dann ersetzt du das durch
Peters Text.
- Jetzt kannst du in die Daten- oder Entwurfsansicht der
Abfrage wechseln und hoffen, dass alles funktioniert
Wenn du noch wenig Erfahrung mit SQL und Abfragen hast,
ist es einfacher, die Aufgabe mit 2 Abfragen zu lösen, die
aufeinander aufbauen. Dann kannst du alles an der grafischen
Access-Oberfläche erledigen. Vorgehen:
- erste neue Abfrage auf Basis deiner Tabelle erstellen
- nimm die Felder Kundennummer und Datum in die Abfrage
- wähle Menü Ansicht/Funktionen, das erzeugt eine neue Zeile
im Abfragegitter unten
- in dieser Zeile "Funktionen" belässt du bei der Kundennummer
"Gruppierung", bei Datum wählst du "Max" als Funktion
- speichere die Abfrage
- zweite neue Abfrage erzeugen mit deiner Tabelle und deiner
gerade erstellten Abfrage
- Verknüpfe die beiden über das Feld Kundennummer und über
das Datumsfeld und lass dir die gewünschten Felder anzeigen
- fertig
--
HTH
Karl
********* Ich beantworte keine Access-Fragen per Email. *********
Access-FAQ: http://www.donkarl.com + Info zur
Access-Entwickler-Konferenz (AEK10) im Oktober in Nürnberg
wolfgang.hofbauer wrote:
> Peter Doering wrote:
>>
>> wolfgang.hofba...@rb-32939.raiffeisen.at wrote:
>>> In einer Tabelle habe ich die Spalten:
>>
>>> Kundennummer, Name, Datum, Info (=Textfeld)
>>
>>> Zu einer Kundennummer werden normalerweise mehrere Datensätze an
>>> unterschiedlichen Tagen (Datum) erfasst. Mittels einer Abfrage möchte
>>> ich nun den Datensatz mit dem aktuellsten Datum ausgeben also den
>>> aktuellsten Eintrag pro Kunde.
>>
>>> Wie kann ich meine Anforderung mit einer ganz Abfrage lösen ohne dass
>>> ich großartig programmieren muß?
>>
>> SELECT Kundennummer, Name, Datum, Info
>> FROM DeineTab AS T1
>> WHERE T1.Datum In
>> (SELECT Max(Datum)
>> FROM DeineTab AS T2
>> WHERE T2.Kundennummer = T1.Kundennummer)
>
> Wie gesagt, ich nutze Access eher oberflächlich und weiß daher nicht,
> wo genau ich das Eintragen muß.
Siehe Karls Beschreibung. Sei noch erwaehnt, dass deine Tabelle
wahrscheinlich nicht "DeineTab" heisst und du den Namen sowohl in der
Haupt- als auch Unterabfrage ersetzen musst, am besten gleich nach dem
Einfuegen in der SQL-Ansicht.
Gruss - Peter
--
Ich beantworte keine Fragen per Email.
Vielen Vielen Dank!!!
Hat super funktioniert!!!
lg
Wolfgang