Beräkna A Glidande Medelvärde In Åtkomst


Nya uppgifter läggs till tabellen dagligen måndag till fredag, baserat på förändringar i börskursen för den dagen. Det nuvarande kravet är baserat på VOLUME-fältet, vilket visar volymen som handlas för ett visst lager på daglig basis. KRAV För att få genomsnittet och totalt volym för respektive 10,15 respektive 30 dagar. METODE ANVÄNDS HELT - Jag skapade dessa 9 SEPARATE QUERIES för att få mina önskade resultat Först har jag skapat dessa 3 frågor för att ta bort de senaste 10,15 och 30 datumen från den aktuella tabellen. qryLast10DaysStored qryLast15DaysStored qryLast30DaysStored Då jag har skapat dessa 3 frågor för att få respektive medelvärden qrySymbolAvgVolume10Days qrySymbolAvgVolume15Days qrySymbolAvgVolume30Days och då har jag skapat dessa 3 frågor för att få respektive TOTALS qrySymbolTotalVolume10Days qrySymbolTotalVolume15Days qrySymbolTotalVolume30Days problem som inför nuvarande metoden - Nu är mitt problem att jag har avslutat upp med dessa så många olika frågor, medan jag ville få utmatningen till en enda fråga, som visas i snapshoten av Excel-arket. LÖSNING BEHÖVER - Finns det något sätt på vilket jag kan få dessa obligatoriska fält i en ENKEL QUERY så att jag inte behöver titta på flera ställen för de obligatoriska fälten Kan någon berätta för mig hur man får alla dessa separata frågor till en - A) antingen genom att ta ut eller flytta resultaten från dessa separata enskilda frågor till en. B) Eller genom att skapa en ny fråga som beräknar alla dessa fält i sig, så att dessa separata enskilda frågor inte längre behövs. Detta skulle vara en bättre lösning som jag tror. En förklaring om datum En del vän kanske tror varför jag använde metoden att använda Top 10,15 och 30 för att få de senaste 10,15 och 30 datumvärdena. Varför använde jag inte PC-datan för att få dessa värden eller använde något liknande - (VOLUME, tbl-B, TimeStamp MELLAN Datum () - 10 OCH Datum ()) Svaret är att jag behöver min fråga om att läsa datumet från TIMESTAMP-fältet, och utför sedan sina beräkningar i enlighet med LAST MEST SENAST 10 dagar, 15 dagar, 30 dagar för vilka uppgifterna är tillgängliga i tabellen, utan att bada vad den aktuella dagen är. Det borde inte bero på aktuellt datum på något sätt. Om det finns någon bättre metod eller effektivare sätt att skapa dessa frågor, vänligen upplysa. PS. Jag har bifogat en SAMPLE-databas som har data i 6 månader, från 1 november 2011 till 30 april 2012 och det har också ovan nämnda frågor i den. Provdatabas med QUERIES Du har separata frågor för att beräkna 10DayTotalVolume och 10DayAvgVolume. Jag misstänker att du kan beräkna både i en fråga, qry10DayVolumes. Men det får mig att undra om 10DayAvgVolume någonsin kan vara annat än 10DayTotalVolume 10 Liknande överväganden gäller för 15 och 30 dagars värden. I slutändan tror jag att du vill ha något baserat på en startpunkt så här: Det förutsätter att du har skapat qry15DayVolumes och qry30DayVolumes efter det sätt som jag föreslog för qry10DayVolumes. Om du vill minska antalet frågor kan du använda underfrågor för varje qryDayVolumes-sparade fråga, men försök så här först för att logiken ska vara korrekt. I det andra frågan ovan kan det vara ett problem på grund av fältnamn som börjar med siffror. Fyll i dessa namn i kvadratparentes eller alias dem igen i qry10DayVolumes. qry15DayVolumes. och qry30DayVolumes använder alias namn som börjar med bokstäver istället för siffror. Jag testade frågan som ovanstående med den 2: a Upload. mdb du laddat upp, och det körde utan fel från Access 2007. Här är den första raden av resultatuppsättningen från den frågan: Besvarad 24 okt 12 kl 19:20 Beräkning Running Totals and Moving Medelvärden i Microsoft Access med Total Access Statistics Microsoft Access erbjuder inte inbyggda funktioner för att beräkna löpande totalvärden. Running Totals är sammanfattningar över ett visst antal poster. Till exempel ett 30 dagars glidande medelvärde som du vill beräkna för varje post baserat på dess värde och dess tidigare 29 poster. Lyckligtvis erbjuder Total Access Statistics ett brett spektrum av löpande totala beräkningar över dina poster: Utför sammanfattningar för en rörlig uppsättning poster för att beräkna summer, medelvärden, minimum, maximum, intervall, median, standardavvikelse etc. Placera sammanfattningsvärdet i en fält i din datakälla Analysera data i dina Access tabeller och frågor (inklusive länkade data) Supportgruppering på fältvärden så att du kan utföra flera analyser i ett pass Running Totals har lagts till Total Access Statistics för Microsoft Access 2007 och X.7 versioner för åtkomst 2003 och tidigare. Running Totals Översikt Running Totals är beräkningar för ett visst antal poster genom ditt bord eller förfrågan. Skapa enkelt resultat som löpande summar, medelvärden, minimum, maximum, median, etc. och placera dem i fält i din datakälla. Dessa beräkningar är tillgängliga: Genomsnittlig (Medel) Räkning Observationer Sum Sum Kvadröjd Minsta Maximal Räckvidd Standardavvikelse Varians Variansfaktor Standardfel Medianlägesläge Räkna Geometrisk Genomsnittlig Harmonisk Medelvärde Röda medelfärdig Skejhet Kurtosis Standardfel av Skewness Standardfel av Kurtosis Upp till fem fält i ditt bord kan uppdateras på en gång. Hur körs totala värden beräknas Till exempel kan du beräkna genomsnittet för de senaste 10 posterna. Detta rörliga medelvärde bestäms utifrån sorteringsordningen för dina data, beräknar medelvärdet för de 10 posterna och sätter det i ett fält du anger med post 10. För post 11 ignoreras post 1 och beräkningen utförs för poster 2 till 11, etc. Liksom de andra funktionerna kan du ange gruppfält så att varje grupp har egna löpande totaler. Den här funktionen skapar inte ett separat bord. Resultaten placeras i de fält du anger i din datakälla. Running Totals Field Selection I fältvalskärmen för Running Totals kan du ange vilka fält som ska sorteras på och fälten för att placera resultaten: Gruppfält låter dig skapa en separat uppsättning analys för varje kombination av unika värden bland gruppfälten. Sorteringsfälten bestämmer sorteringsordningen för dina poster för att beräkna löpande värden. Ange minst ett sorteringsfält. Detta kan innehålla det fält du utför beräkningarna på. Fält sorteras i stigande ordning. Ange upp till fem fält att uppdatera med dina sammanlagda bud. Kontrollera att fälten är av datatyper som kan hålla de data du förväntar dig att lägga in dem. Till exempel borde de vara dubbla om du förväntar dig att lagra värden som genomsnittet (medelvärde), variansen etc. Running Total Options Efter val av fält presenteras alternativen Running Totals: Fält att analysera Specificera fältet som beräkningarna baseras på. Det här fältet kan vara ett fält som specificerades som ett sorteringsfält. Till exempel kan du beräkna löpande genomsnitt baserat på försäljning sorterad i stigande ordning. Antal poster för att beräkna totalvärden över Ange antal poster i den rörliga totalen. Om du anger 0, beräknas totalen för varje post. Om du anger ett visst tal baseras beräkningarna på det antal poster. Den första posten tappas när nästa läggs till, och beräkningarna är baserade på denna rörliga uppsättning poster. Initial uppsättning poster Om du anger antalet poster för att beräkna totals över, finns det ett alternativ att bestämma vad som händer innan du når det antal poster. Antingen summan ska överföras eller beräknas baserat på de behandlade dokumenten. Välj Beräkna för att se löpande summor oavsett om antalet flyttbara poster har uppnåtts. Välj Lämna tomt så att det endast går att köra totals när det angivna antalet poster har uppnåtts utan några beräkningar för mindre antal poster. Beräkningstyp Det finns många beräkningstyper tillgängliga. Ange den du vill ha för varje uppdateringsfält du valt. Running Totals Results Resultaten för Running Totals är placerade i de angivna uppdateringsfälten: Exempel på Running Totals placeras i de rätta fyra fälten i Microsoft Access-tabellen I det här exemplet sorterades data efter Datum och Order ID, med beräkningen på försäljningen fält. Observera att värdena i RunningCount-fältet ökar från 1 till 10. När det når 10, förblir det 10, eftersom det är det maximala antalet poster i den rörliga totalen. RunningTotal-fältet visar summan av Försäljningen över posterna i den rörliga uppsättningen poster. Eftersom valet för att beräkna värdena för den ursprungliga uppsättningen poster valdes (innan den nådde 10 poster) visas värdena. I annat fall skulle de första 9 posterna ha nullvärden. Interactive Wizard och VBA Programmatic Interfaces Total Access Statistics gör det möjligt att interaktivt generera dina beräkningar genom guiden gränssnitt för att enkelt välja datakälla, fält och analys utan programmering. När du har angett dina val sparas de automatiskt som ett scenario i din databas så att du kan köra dem igen i framtiden när dina data ändras. En VBA-statistikfunktion är också tillgänglig så att du kan generera dessa resultat från kod. Du kan enkelt köra alla sparade scenarier genom att ringa en enda procedur i VBA-biblioteket Total Access Statistics. Biblioteket innehåller en royaltyfri körtidslicens så att du kan inkludera den med din Access-databas och distribuera den till ägare av icke-Total Access Statistics. Ring funktionen från en knapp OnClick-händelse eller annan process, och resultaten genereras för dig. Du kan till och med gömma det inbyggda användargränssnittet så att dina användare inte ens vet att Total Access Statistics körs. De kommer att bli förvånad över dina statistiska analysmöjligheter Ytterligare detaljer om beräkningar som finns tillgängliga i totalåtkomststatistik Här är några ytterligare resurser och detaljer om någon av de dataanalyser du kan utföra på din Microsoft Access-data med Total Access Statistics: Finansiella kassaflödesberäkningar Använd rabatterade pengar flöden och räntor för att generera netto nuvärde (nuvärde), nuvärde (PV), framtida värde (FV), internränta (IRR), ändrad intern avkastningsränta (MIRR) för periodiska och datumberoende betalningar och kvitton. Percentila beräkningar Beräkna olika typer av percentiler: median, kvartiler, quintiler, oktiler, deciler, percentiler, varje X.5 percentil, och placera dem i en tabell eller uppdatera ett befintligt fält med procentpappersvärdet. Running Totals and Moving Averages Summarisera en rörlig uppsättning poster för att beräkna löpande belopp, glidande medelvärden, minimum, maximum, intervall, median, standardavvikelse etc. Datal Normalisering (Data Transpose) Överför icke normaliserade data så att du enkelt kan analysera och underhålla Det. Regressioner Enkla, multipla och polynomala regressioner med beräkning av ekvationskoefficienter, ANOVA och resterande tabell Crosstabs och Chi-Square Avancerade kors-tabuleringar med procent av rad, kolumn och totals visas som poster eller kolumner. Flytta Genomsnittlig Beräkning Flytta Genomsnittlig Beräkning Flyttande Genomsnittlig Beräkning Jag försöker att beräkna ett glidande medelvärde för en serie data. Jag vill generera det glidande medlet för varje punkt inom data, för att visa i en graf. Hur som helst nedan är ett exempel från MS Support. Jag har följt till brevet, men min ger inte ett glidande medelvärde. Den upprepar samma datapunkt om och om igen (den första datapunkten). Så jag tror inte att funktionen är att hitta startdatumet i MyRST. Seek-linjen, och returnerar därför den första datapunkten. Slutligen (kanske kommer det att bli så enkelt) Jag är förvirrad över hur indexen fungerar. Jag trodde att du bara kunde ha en primär nyckel, men du kan tydligen skapa flera fältbegränsningar. Jag har försökt att göra det med följande datadefinitionsfråga: ALTER TABLE Tabell1 ADD CONSTRAINT NoDupes UNIQUE (CurrencyType, TransactionDate) Tyvärr om längden på det här inlägget. Jag uppskattar din hjälp. Följande provfunktion beräknar glidande medelvärden baserat på ett bord med en primärnyckel med flera fält. De veckovisa värdena för utländska valutor används för detta exempel. Gör följande för att skapa provfunktionen: Skapa följande tabell och spara den som Tabell 1: Tabell: Tabell 1 --------------------------- -------------- Fältnamn: ValutaTyp Primärtypdatatyp: Textfältstorlek: 25 Fältnamn: TransaktionData Primärtangarddatatyp: Datumtidsformat: Kort datum Fältnamn: Betygsdatatyp: Valuta Decimala platser: 4 Visa tabellen i databladvy och ange följande värden: CurrencyType TransactionDate Rate ------------------------------- ------------- Yen 8693 0.0079 Yen 81393 0.0082 Yen 82093 0.0085 Yen 82793 0.0088 Yen 9393 0.0091 Mark 8693 0.5600 Mark 81393 0.5700 Mark 82093 0.5800 Mark 82793 0.5900 Mark 9393 0.6000 Öppna en ny modul och skriv in Följande funktioner: Funktion MAvgs (Perioder som heltal, StartDate, Typnamn) Dimma MyDB som DATABASE, MyRST som RecordSet, MySum som Double Dim i, x Ställ in MyDB CurrentDb () Ställ in MyRST MyDB. OpenRecordset (Tabell1) Vid fel fortsätt Nästa MyRST. Index PrimaryKey x Perioder - 1 ReDim Store (x) MySum 0 För i 0 till x MyRST. MoveFirst MyRST. Seek, TypeName, StartDate Dessa två variabler borde vara i samma ordning som de primära nyckelfälten i din tabell. Store (i) MyRSTRate Om I lt x Då StartDate StartDate - 7 De 7 här antar varje vecka data 1 för dagliga data. Om StartDate lt 8693 Då MAvgs Null: Exit Function 8693 ersätts med det tidigaste datumet för data i din tabell. MySum Store (i) MySum Next I MAvgs MySum Periods MyRST. Close End Function Skapa följande fråga baserat på Table1-tabellen: Query: Query1 --------------------- ---------------------------------- Fält: ValutaTypfält: Transaktionsdatumsfält: Betygsfält: Expr1: MAvgs (3 , TransactionDate, CurrencyType) OBS! Den här frågan kommer att generera ett treveckors glidande medelvärde av kursdata. För att beräkna ett längre eller kortare glidande medelvärde, ändra nummer 3 i Querys Expr1-kolumnen till det värde du vill beräkna. Kör frågan. Observera att du ser följande treveckors glidande medelvärde för varje valuta. Ett Null-värde indikerar att det inte fanns tillräckligt med tidigare värden för att beräkna det genomsnittliga veckan. ValutaTyp TransaktionDate Ränta Expr1 Mark 080693 0.5600 Mark 081393 0.5700 Mark 082093 0.5800 0.57 Mark 082793 0.5900 0.58 Mark 090393 0.6000 0.59 Yen 080693 0.0079 Yen 081393 0.0082 Yen 082093 0.0085 0.0082 Yen 082793 0.0088 0.0085 Yen 090393 0.0091 0.0088 RE: Flytta Genomsnittlig Beräkning dhookom (Programmerare) 28 Jun 10 21:15 Hur gammal är den koden Den använder inte explicit DAO och nämner inte att detta inte fungerar med länkade tabeller. Dim MyDB som DAO. Database, MyRST som DAO. Recordset. Jag skulle använda en underfråga snarare än en recordset. Det kan se ut som: VÄLJ ValutaTyp, Transaktionsdatum, Betygsätt, (VÄLJ Gem (RÄTT) FRÅN TABELL 1 B VAR A. CurrencyType B. CurrencyType OCH A. TransactionDate MELLAN B. TransactionDate - 14 AND B. TransactionDate) FRÅN TABLE 1 A RE: Moving Genomsnittlig beräkning Det är verkligen perfekt. Jag uppskattar verkligen din hjälp. Koden du gav beräknar emellertid det framåtriktade 14 dagars glidande genomsnittet (placerar det glidande medelvärdet i posten för dag 1 i genomsnittet, där jag ville att det skulle vara ett bakåtblickande medelvärde, placerat i post 14). Jag ändrade bara något till följande och det verkar fungera SELECT A. CurrencyType, A. TransactionDate, A. Rate, (VÄLJ Avg (Rate) FRÅN TABLE 1 B VAR A. CurrencyType B. CurrencyType OCH B. TransactionDate MELLAN A. TransactionDate - 14 OCH A. TransactionDate) AS Expr1 FRÅN TABELL 1 AS A Du kan se, allt jag gjorde var utbyte A för B i var klausulen. Det här är en riktigt stor hjälp till mig och jag uppskattar det verkligen. Jag har inte sett kodning så här innan, och ärligt talat förstår jag inte riktigt det. Jag vet inte hur SQL förstår vad B och A är. Jag antar att de skapar någon form av alternativ hänvisning till tabell 1. Om du kan ge någon vägledning skulle jag verkligen uppskatta det. Också, kanske lite referens till material som jag kunde titta på Jag är alltid väldigt exalterad att lära mig något nytt om VBASQL, och jag uppskattar verkligen din hjälp RE: Flytta genomsnittlig beräkning PHV (MIS) 29 jun 10 12:22 förstår vad B och A är de alias es RE: Flytta Genomsnittlig Beräkning Tack, PHV. Det är bättre att känna redan RE: Flytta genomsnittlig beräkning joshery420 (TechnicalUser) 6 Jul 10 15:06 Wow, har aldrig tittat på SQL-visning före. Mycket hjälpsam. Jag försöker få den här koden att fungera i min egen dataset och jag håller fast vid en viss fråga. pd2004, inte säker på om den nya subquery-koden fungerade på samma sätt som din gamla VBA-kod eller inte, men med mina data visas det fortfarande rullande genomsnittet, även om det inte finns tillräckligt många dagar för att skapa den genomsnittliga längden. t. ex. Om jag utför ett rullande medelvärde på 7 dagar visar dag 1 samma data i kolumnen 7DayAvg som den gör i den dagliga datakolonnen. Dag 2 skulle visa medeltalet dagar 1 och 2 osv. Vet du någon av er hur man fixar det här tillfället Också tack för den stora kodtipset PHV. RE: Flytta Genomsnittlig Beräkning joshery420 (TechnicalUser) 6 Jul 10 15:08 Woops, menade att tacka dhookom för kodtipset, inte PHV. Men hej, tack vare er båda. XD RE: Flytta genomsnittlig beräkning Jag lämnar de bästa lösningarna till professionella här, men du kan se i mitt ursprungliga inlägg hur Microsoft Help-exempelet försöker hantera det. Här är koden: Om StartDate lt 8693 Då MAvgs Null: Exit Function 8693 ersätts med det tidigaste datumet för data i din tabell. De sparar bara funktionen om datumet inte passar kriterierna. Jag vet inte om du kan införliva något sådant i aliaskoden som tillhandahålls av dhookem. Jag gillar inte deras sätt att hantera detta, och jag misstänker att dhookem kommer att ge en mycket mer elegant lösning. För mitt ändamål är problemet du beskriver inte ett problem, men jag kommer att vara intresserad av att se några lösningar. RE: Flytta Genomsnittlig Beräkning dhookom (Programmerare) 6 Jul 10 17:05 Du kan försöka använda IIf () för att testa för en räkning av antalet poster. Varning: Otestad anteckningsblankett följer: SELECT A. CurrencyType, A. TransactionDate, A. Rate, IIF ((VÄLJ Räkna (RÄTT) FRÅN TABLE 1 C VAR A. CurrencyType C. CurrencyType OCH C. TransactionDate MELLAN A. TransactionDate - 14 AND A. TransactionDate) 7, (VÄLJ Avg. (Ränta) FRÅN TABELL 1 B VAR A. ValutaType B. ValutaTyp OCH B. TransaktionData MELLAN A. TransactionDate - 14 OCH A. TransactionDate), Null) AS Expr1 FRÅN TABELL 1 SOM EN RE: Flyttande Genomsnittlig Beräkning9 0,2. Beräkning av ett rörligt medelvärde av Wayne S. Freeze, Ken Bluttman Beräkning av ett rörligt medelvärde Du kan använda ett SELECT-uttalande som följande för att beräkna ett glidande medelvärde: Detta uttalande skannar en tabell som innehåller dagliga värden och använder en inbäddad fråga för att beräkna medelvärdet på tvären de föregående sju dagarna. Du kan enkelt justera detta intervall för att ändra hur det rörliga genomsnittet beräknas. Till exempel kan du använda en Where-klausul så här för att beräkna det glidande genomsnittet över ett 14-dagars fönster med det aktuella datumet i mitten: Diskussion Ett glidande medelvärde används för att släta tidsseriedata som innehåller märkbara hopp mellan observationer. Tidskalan för observationerna kan vara dagar (som i föregående exempel), månader eller till och med år. Alternativt kan du använda en enkel AutoNumber-kolumn istället för ett datumfält, eftersom värdena i den kolumnen också ökar över tiden. Ju större intervallet som används för att beräkna det rörliga genomsnittet är ju ju mjukare den resulterande kurvan kommer att vara. I figur 9-3. du kan se hur ett glidande medel släpper ut de enskilda observationerna av ett aktiekurs. Figur 9-3. Använd ett glidande medel för att släta en uppsättning värden

Comments