En aldrende rapport er en rapport, der viser tilgodehavender beløb grupperet efter alder. Rapporten gør det let at få øje på kunder, der er forsinkede i deres betalinger. Nøglen til at skabe disse typer rapporter i Microsoft Access er at lave en visning af dine data, der har disse kolonner allerede har oprettet. Dette gøres ved hjælp af en kraftig forespørgsel sprog teknik kaldet en sub- select . Ting du skal
Microsoft Access 2007
Vis Flere Instruktioner
1
Brug DateDiff funktion til beregning netop hvordan sent nogen betaling . Som et meget forenklet eksempel antage, at der er to tabeller i Access- databasen: Ordrer og Kunden . Hver kunde har et navn og et ID . Hver ordre har et id , et kunde-id , et beløb , en ordre dato og en betalingsdato . Hvis ordren endnu ikke er betalt, betalingsdato er ugyldig . Antallet af dage, at ordren betalingen er forsinket , er det antal dage mellem dag og ordredato. For at få denne værdi i en Access forespørgsel , skal du bruge DateDiff funktionen . Et eksempel ville være DateDiff ( "d" , OrderDate , Now) . "D" fortæller den funktion at tælle antallet af dage (i modsætning til måneder, år , timer, minutter , osv.) . "Now " i funktion opkald angiver den aktuelle dato i overensstemmelse med computerens ur. En sub -select er en separat udvælgelsesforespørgsel indlejret i en eksisterende udvælgelsesforespørgsel . Den sub -select skal returnere én værdi. Her er et eksempel på en forespørgsel med et sub -select , der giver blot de ordrer, mindre end 30 dage for sent : Hej
SELECT c.custname , ( SELECT sum ( o.Amount ) FROM Ordrer o WHERE DateDiff ( " d " o.OrderDate , nu) < 31 AND o.PaymentDate er NULL AND o.CustomerID = c.ID ), da [30 dage eller mindre ] fra kunden c ORDER BY c.CustName
2 < p> Kombiner flere sub- forespørgsler i en enkelt stor forespørgsel. Ved at kombinere disse typer af sub forespørgsler , hver med et andet sæt af kriterier, et sæt kolonner skabt hvor hver kolonne har den samlede mængde af betalinger for en given kunde , der er sent af det angivne antal dage. Her er et eksempel : Hej
SELECT c.custname , ( SELECT sum ( o.Amount ) FROM Ordrer o WHERE DateDiff ( "d" , o.OrderDate , nu) < 31 AND o.PaymentDate er nul og o.CustomerID = c.ID ), da [30 dage eller mindre ] , ( SELECT sum ( o.Amount ) FROM Ordrer o WHERE DateDiff ( "d" , o.OrderDate , nu) > 30 AND DateDiff ( "d" , o.OrderDate , nu) < 61 AND o.PaymentDate er NULL AND o.CustomerID = c.ID ), da [ 31-60 dage ] ( SELECT sum ( o.Amount ) FROM Ordrer o WHERE DateDiff ( "d" , o.OrderDate , nu) > 60 AND DateDiff ( "d" , o.OrderDate , nu) < 91 og o.PaymentDate er NULL AND o.CustomerID = c.ID ), da [ 61-90 dage ] ( SELECT sum ( o.Amount ) FROM Ordrer o WHERE DateDiff ( "d" , o.OrderDate , nu) > 90 AND DateDiff ( "d" , o.OrderDate , nu) < 121 og o.PaymentDate er nul og o . Kunde = c.ID ), da [ 91-120 dage ] ( SELECT sum ( o.Amount ) FROM Ordrer o WHERE DateDiff ( "d" , o.OrderDate , nu) > 120 AND o.PaymentDate er nul og o . Kunde = c.ID ), som [ 121 dage eller mere ] FROM Kunde c ORDER BY c.CustName
Denne forespørgsel vil give 6 kolonner: kundenavn, samlet beløb mindre end 30 dage for sent , beløb på mellem 31 og 60 dage for sent , 61 og 90 dage , 91 og 120 dage, og mere end 121 dage for sent. Når forespørgslen er sat op den måde, det skal være, gemme det i Access.
3
Opret rapporten . En gemt forespørgsel som den ovenfor, kan anvendes som grundlag for en rapport ligesom hvis det var en tabel . Rapporten guiden kan bruges , vælge den gemte forespørgsel i stedet af bordene.