En åldrande är en rapport som visar kundfordringar uppgår grupperade efter ålder . Rapporten gör det lätt att upptäcka kunder som är sena med sina betalningar . Nyckeln till att skapa dessa typer av rapporter i Microsoft Access är att göra en bild av dina data som har dessa kolumner redan skapats . Detta görs med hjälp av en kraftfull teknik frågespråk som kallas en sub - select . Saker du behöver
Microsoft Access 2007
Visa fler instruktioner
1
Använd DateDiff funktion för att beräkna precis hur sent någon betalning . Som ett mycket förenklat exempel , antar att det finns två tabeller i Access- databasen: ordrar och kunder . Varje kund har ett namn och ett ID . Varje order har ett ID , kund -ID , ett belopp , en order datum och betalningsdatum . Om beställningen inte ännu betalats , är betalningsdagen null . Antalet dagar som ordern betalningen är försenad är antalet dagar mellan dagens och orderdatum. För att få detta värde i en Access-frågan använder DateDiff funktionen . Ett exempel skulle vara DateDiff ("d" , OrderDate , nu ) . Den " d " berättar för att räkna det antal dagar (i motsats till månader, år , timmar, minuter , etc.). Den " Nu " i funktionsanropet visar aktuellt datum enligt datorns klocka . En sub - select är ett separat urvalsfråga kapslas i en befintlig urvalsfråga . Den sub - select måste returnera endast ett värde . Här är ett exempel på en fråga med en sub - select som ger bara order mindre än 30 dagar sen :
SELECT c.custname , ( SELECT sum ( o.Amount ) FROM Orders o VAR DateDiff ( " d " , o.OrderDate , nu ) < 31 och o.PaymentDate är noll och o.CustomerID = c.ID ) som [ 30 dagar eller mindre] FROM Kund c ORDER BY c.CustName
2
Kombinera flera sub- frågor till en enda stor fråga . Genom att kombinera dessa typer av sub -frågor , var och en med en annan uppsättning kriterier , är en uppsättning kolumner skapas där varje kolumn har den totala mängden betalningar för en viss kund som är sena med angivet antal dagar . Här är ett exempel :
SELECT c.custname , ( SELECT sum ( o.Amount ) FROM Orders o VAR DateDiff ( " d " , o.OrderDate , nu ) < 31 och o.PaymentDate är noll och o.CustomerID = c.ID ) som [ 30 dagar eller mindre] ( SELECT sum ( o.Amount ) FROM Orders o VAR DateDiff ( " d " , o.OrderDate , numera ) > 30 och DateDiff ( " d " , o.OrderDate , nu ) < 61 och o.PaymentDate är noll och o.CustomerID = c.ID ) som [ 31-60 dagar ] , ( SELECT sum ( o.Amount ) FROM Orders o VAR DateDiff ( " d " , o.OrderDate , nu ) > 60 och DateDiff ( " d " , o.OrderDate , nu ) < 91 och o.PaymentDate är noll och o.CustomerID = c.ID ) som [ 61-90 dagar ] , ( SELECT sum ( o.Amount ) FROM Orders o VAR DateDiff ( " d " , o.OrderDate , numera ) > 90 och DateDiff ( " d " , o.OrderDate , nu ) < 121 och o.PaymentDate är noll och o. . Kundnr = c.ID ) som [ 91-120 dagar ] , ( SELECT sum ( o.Amount ) FROM Orders o VAR DateDiff ( " d " , o.OrderDate , numera ) > 120 och o.PaymentDate är noll och o. . Kundnr = c.ID ) som [ 121 dagar eller mer ] FROM Kund c ORDER BY c.CustName
Denna fråga kommer att ge 6 kolumner : kundnamn , total mängd mindre än 30 dagar för sent , belopp mellan 31 och 60 dagar för sent , 61 och 90 dagar , 91 och 120 dagar och mer än 121 dagar för sent . När frågan väl är inställd så det måste vara , spara den i Access .
3
Skapa rapporten . En sparad fråga som den ovan kan användas som grund för en rapport precis som om det vore en tabell . Rapporten Guiden kan användas , markera den sparade frågan i stället för tabeller .