Query - Laatste transactie

Status
Niet open voor verdere reacties.

jan1972

Gebruiker
Lid geworden
2 feb 2016
Berichten
6
Ik zou graag hulp krijgen bij een query in een database. Ik heb weinig Access ervaring, ik hoop dat de informatie die ik hier plaats voldoende is voor het beantwoorden van mijn vraag. Het betreft een database met daarin transacties op klantenkaarten.

Belangrijke velden zijn:
Tabel TRANCACTIONS:
CARD_NR: nummer van de klantenkaart
CARD_SEQ_NR: volgnummer van de klantenkaart, elke nieuwe transactie verhoogd het CARD_SEQ_NR met 1 (waarbij er veel verloren transacties zijn wegens importproblemen)
DATETIME: datum en tijd van de transactie
BAL_NEW: het saldo van een klantenkaart

Tabel CLIENT:
CARD_NR: Zie hierboven
NAME: Achternaam klant
FIRSTNAME: Voornaam klant
TEL: Vast nummer
GSM: Mobiel nummer

Door de opzet van CARD_SEQ_NR en BAL_NEW staan er voor elk CARD_NR heel veel transacties in de database, totaal 6 miljoen records. Nu wil ik een query maken van de laatste transactie die bij elk CARD_NR hoort. Met mijn beperkte Access kennis lukt me dit niet.

Bijgevoegd:
- Report1.pdf: Relationships rapport
- Laatste transactie.jpg: Screenshot waarbij in het rood aangegeven de laatste transactie per kaart, dat is de transactie die ik terug wil zien in de query
- Card-Transactions.jpg: Screenshot waarbij de relatie tussen de tabel CLIENT en TRANSACTIONS inzichtelijk wordt gemaakt. Per CARD_NR zijn alle transacties in te zien. Het gaat daarbij dus om de laatste transactie, die moet uitgefilterd worden.

Bij voorbaat dank.
 

Bijlagen

  • Report1.pdf
    Report1.pdf
    97,3 KB · Weergaven: 23
  • Laatste transactie.jpg
    Laatste transactie.jpg
    108,8 KB · Weergaven: 49
  • Card-Transactions.jpg
    Card-Transactions.jpg
    91,4 KB · Weergaven: 35
Volgens mij moet je met een Totalen query een eind kunnen komen. Groeperen op de gegevens die je wilt zien (KlantID etc) en de functie LAST voor het bedrag.
 
Dat had ik geprobeerd, maar ik krijg niet de juiste uitkomst. Zoals gezegd is mijn kennis van Access nogal beperkt. Ik zou graag iets gerichtere assistentie krijgen. Dank
 
Voor gerichtere hulp hebben we een db met gegevens nodig. Anders blijft het toch een beetje gokken vrees ik. En dat mag van mij best, maar dan gaat het een stuk langer duren :).
 
Dat is natuurlijk eenvoudiger :)
Hierbij bijgevoegd, vriendelijk bedankt
 

Bijlagen

LAST lijkt inderdaad een beetje misplaatst hier omdat de volgorde van de records niet helemaal deugt. Met Max heb je dat probleem overigens niet. Je échte probleem ligt hem er waarschijnlijk in dat je de overige velden uit je tabel óók wilt zien, en in dat geval heeft groeperen weinig tot geen nut, want met elk veld dat je toevoegt wordt je resultaat rotter. Je zult derhalve wat anders moeten toepassen: een subquery bijvoorbeeld om de CARD_SEQ_NR te filteren binnen de query. En dat doe je dan zo:
Code:
SELECT ID, BATCH_ID, BATCHSEQ_NR, DATETIME, TERM_SEQ_NR, CARD_NR, CARD_SEQ_NR, BAL_OLD, BAL_MOV, BAL_NEW, ACTION_CODE, PERCENT_PARAM, VOLUMN_PARAM, AMOUNT, ART_CAT
FROM [TRANSACTION]
WHERE (((TRANSACTION.CARD_SEQ_NR) In (SELECT Max(a.CARD_SEQ_NR) AS MaxCARDSEQNR
FROM [TRANSACTION] AS a WHERE a.CARD_NR = TRANSACTION.CARD_NR)))
ORDER BY CARD_NR;
 
Uitstekend, mijn hartelijke dank. Ik zou dit zelf nooit gevonden hebben.:thumb:
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan