Wednesday, 30 August 2017

Moving Average Ms Access


Ek het 'n tafel produksie wat die volgende struktuur bevat: Ek het data vir elke her van 2011/01/01 tot 2013/08/01. Wat ek wil in staat wees om te doen is maak 'n 12 maande bewegende gemiddelde begin 2012/01/01 vir elke rep, soos volg: waar elke ry verteenwoordig die 12 maande bewegende gemiddelde vir genoemde rep by genoemde tyd. Ek het 'n paar voorbeelde wat vaagweg naby was en ek het probeer om hulle te help nie. Dit blyk dat die byvoeging van 'n groep deur rep komponent is die groot afwyking van ander voorbeelde. Dit is omtrent so ver as wat ek gekry het: Dit navraag blyk 'n algehele gemiddelde of som trek, want daar is geen groepering in die gekorreleer subquery. Toe ek probeer om groep, kry ek 'n fout dat dit net kan terugkeer hoogstens een ry. gevra 10 Oktober 13 by 14: 47How 'n SQL Bereken bewegende gemiddelde sonder 'n wyser Update: As jy besig is met die nuutste weergawes van SQL Server, kan jy die windows funksies gebruik om dieselfde ding te bewerkstellig. Ek gepos word om die updated kode aan die einde van die post. Om hierdie video, ek nog graag die denkproses van anker om 'n datum. Video: 3 daagse bewegende gemiddelde in SQL 'n doeltreffende manier om 'n bewegende gemiddelde in SQL te bereken met behulp van 'n paar truuks op datum ankers stel. Daar is debatte oor die beste manier om 'n SQL bewegende gemiddelde in SQL Server doen. Sommige mense dink daar is tye wanneer 'n wyser is mees doeltreffende. Ander dink dat jy dit alles kan doen in 'n stel wat gebaseer is weg sonder die wyser. Die ander dag het ek gaan 'n bewegende gemiddelde te bereken en my eerste gedagte was om 'n wyser gebruik. Ek het 'n paar vinnige navorsing en het gevind dat hierdie forum vraag: Moving Gemiddelde in TSQL Daar is 'n pos wat 'n subquery met 'n anker datum te help vind die 1 en 2 dag geneutraliseer toon. Hier is die skrif wat jy kan gebruik om die 3 dag SQL Gemiddeld finale uitslag Moving toets. Hier is die finale navraag. Hier is die vraag wat jy sou gebruik met SQL Server 2012. Deel hierdie: Berekening Running totale en Bewegende Gemiddeldes in Microsoft Access met Total Access Statistics Microsoft Access bied nie ingeboude funksies om hardloop totale te bereken. Running Totale is opsommings oor 'n sekere aantal rekords. Byvoorbeeld, 'n 30 dae bewegende gemiddelde wat youd graag bereken vir elke rekord op grond van sy waarde en sy vorige 29 rekords. Gelukkig Totaal Toegang Statistiek voer 'n wye verskeidenheid van die bestuur totale berekeninge oor jou rekords: Doen opsommings vir 'n bewegende stel rekords op somme, gemiddeldes, minimum, maksimum, reeks, mediaan, standaardafwyking te bereken, ens Sit die opsomming waarde in 'n gebied in jou data bron Ontleed die data in jou Toegang tafels en navrae (insluitend gekoppel data) Ondersteun groepering op veldwaardes sodat jy verskeie ontleding kan uitvoer in 'n keer Running Totale bygevoeg om Totaal Toegang Statistiek vir Microsoft Access 2007, en X.7 weergawes vir Access 2003 en vroeër. Running Totale Oorsig Running Totale is berekeninge vir 'n sekere aantal rekords deur jou tafel of navraag. Maklik resultate soos hardloop somme, gemiddeldes, minimum, maksimum, mediaan, ens en plaas dit in die velde in jou data bron. Hierdie berekeninge is beskikbaar: Gemiddeld (gemiddelde) Tel Waarnemings Som Som Squared Minimum Maksimum Range standaardafwyking Variansie koëffisiënt van Variansie standaardfout Mediaan Modus af Telling geometriese gemiddeld Harmoniese Mean wortel-gemiddelde-kwadraat Skeefheid Kurtose standaardfout van skeefheid standaardfout van Kurtose Tot vyf velde in jou tafel kan bygewerk op 'n tyd. Hoe lopende totaal Waardes word bereken Byvoorbeeld, wil jy dalk die gemiddeld van die afgelope 10 rekords te bereken. Dit bewegende gemiddelde is bepaal op grond van die volgorde van jou data, die berekening van die gemiddelde vir die 10 rekords en sit dit in 'n veld wat jy aanwys met rekord 10. Vir rekord 11, is rekord 1 geïgnoreer en die berekening uitgevoer word vir rekords 2 deur 11, ens Soos die ander funksies, kan jy groep velde spesifiseer sodat elke groep het sy eie gang totale te bekom. Hierdie funksie is nie 'n aparte tafel te skep. Die resultate word in die velde wat jy spesifiseer in jou data bron. Running Totale Veld Seleksie Die veld seleksie skerm vir hardloop Totale waarmee jy die velde spesifiseer uit te sorteer op en die velde om die resultate te plaas: Groep Fields laat 'n aparte stel analise vir elke kombinasie van unieke waardes onder die groep velde genereer. Die Sorteer Fields bepaal die volgorde van jou rekords aan die gang waardes te bereken. Spesifiseer ten minste een soort veld. Dit kan die volgende insluit die veld jy die uitvoering van die berekeninge op. Velde word gesorteer in stygende volgorde. Spesifiseer tot vyf Fields te Werk met jou totale te bekom. Maak seker dat die velde is van datatipes dat die data wat jy verwag in hulle om te sit kan hou. Byvoorbeeld, moet hulle dubbelspel wees as jy verwag om waardes te stoor soos gemiddelde (gemiddelde), variansie, ens lopende totaal Options Na die kies van die velde, is die bedryf Totale opsies aangebied: Veld ontleed Spesifiseer die stuk grond van die berekeninge is gebaseer op. Hierdie veld kan 'n stuk grond wat gespesifiseer as 'n soort veld wees. Byvoorbeeld, kan jy die loop gemiddelde gebaseer op verkope gesorteer in stygende volgorde te bereken. Aantal rekords te bereken Totale Oor Spesifiseer die aantal rekords in die bewegende totaal. As jy 0 spesifiseer, word die totale bereken vir elke rekord. As jy 'n spesifieke nommer in te voer, is die berekeninge gebaseer op die aantal rekords. Die eerste rekord gedaal toe die volgende een bygevoeg word, en die berekeninge is gebaseer op hierdie bewegende stel rekords. Aanvanklike Stel Records As jy die aantal rekords om totale oor te bereken spesifiseer, daar is 'n opsie om te bepaal wat gebeur voordat jy dat die getal rekords te bereik. Óf die totale moet oorgeslaan word of bereken op grond van die rekords verwerk. Kies Bereken die gang totale ongeag of die aantal beweeg rekords bereik sien. Kies los skoon en kliek om net hardloop totale wanneer die gespesifiseerde aantal rekords is bereik sonder enige berekeninge vir kleiner aantal rekords. Berekening Tipe Daar is baie verskillende tipes berekening beskikbaar. Spesifiseer die een wat jy wil vir elkeen van die werk velde wat jy gekies het. Running Totale Resultate Die Running Totale resultate word in die werk velde vermeld: Voorbeeld van Running Totale geplaas in die regte vier velde van hierdie Microsoft Access tabel In hierdie voorbeeld is die data gesorteer volgens datum en Orde ID, met die berekening van die verkope gebied. Let op die waardes in die veld RunningCount toenemende van 1 tot 10. Sodra dit 10 bereik, is dit steeds teen 10 want dit is die maksimum aantal rekords in die bewegende totaal. Die RunningTotal veld toon die bedrag van verkope oor die rekords in die bewegende stel rekords. Omdat die opsie om die waardes te bereken vir die aanvanklike stel rekords is gekies (voordat dit 10 rekords bereik), is die waardes vertoon. Anders sou die eerste 9 rekords nul waardes het. Interaktiewe Wizard en VBA Programmatiese Interfaces Totaal Toegang Statistiek kan jy interaktief jou berekeninge te genereer deur middel van sy assistent-koppelvlak om maklik te kies die databron, velde, en ontleding sonder programmering. Nadat jy jou keuses spesifiseer, word dit outomaties gestoor as 'n scenario in jou databasis sodat jy dit weer kan hardloop in die toekoms wanneer jou data veranderinge. A VBA statistieke funksie is ook beskikbaar sodat jy hierdie resultate uit-kode kan genereer. Jy kan enige gered scenario maklik uit te voer deur die roeping van 'n enkele prosedure in die Total Access Statistics VBA biblioteek. Die biblioteek sluit 'n reg vrye runtime lisensie, sodat jy dit kan sluit met jou Access-databasis en versprei dit aan nie-Totaal Toegang Statistiek eienaars. Bel die funksie van 'n knoppies OnClick event of ander proses, en die resultate word gegenereer vir jou. Jy kan selfs verberg die ingeboude gebruikerskoppelvlak sodat jou gebruikers nie eens weet Totaal Toegang Statistiek loop. Hulle sal verbaas wees met jou statistiese ontleding vermoëns Bykomende Besonderhede van Berekenings Beskikbaar in Total Access Statistics Hier is 'n paar bykomende hulpbronne en besonderhede oor 'n paar van die data-analise wat jy kan doen op jou Microsoft Access data met Total Access Statistics: Finansiële kontantvloeiberekeninge Gebruik verdiskonteerde kontantvloei vloei en rentekoerse te Netto huidige waarde (NHW), huidige waarde (PV), Future Value (FV) genereer, Interne Opbrengskoers (IOK), Gewysig Interne Opbrengskoers (MIRR) vir 'n gereelde en datum afhanklik betalings en ontvangste. Persentiel Berekenings Bereken verskillende tipes persentiele: mediaan, kwartiele, kwintiele, octiles, desiele, persentiele, elke X.5 persentiel, en plaas dit in 'n tabel of te verander 'n bestaande veld met die rekords persentiel waarde. Running totale en Bewegende Gemiddeldes Som 'n bewegende stel rekords te bestuur somme te bereken, bewegende gemiddeldes, minimum, maksimum, reeks, mediaan, standaardafwyking, ens Data Normalisering (Data Transponeer) Transponeer nie-genormaliseerde data, sodat jy maklik kan analiseer en in stand te hou Dit. Regressies Eenvoudige, veelvuldige en polinoom regressie met berekening van vergelyking koëffisiënte, ANOVA en residuele tafel kruis tabelle en Chi-Square Gevorderde kruis-tabelle met persentasie van ry, kolom en totale vertoon as rekords of columnsMoving Gemiddelde Berekening Moving Gemiddelde Berekening Moving Gemiddelde Berekening Ek probeer 'n bewegende gemiddelde te bereken vir 'n reeks van data. Ek wil die bewegende gemiddelde vir elke punt in die data te genereer, om te wys in 'n grafiek. In elk geval, hieronder is 'n voorbeeld van MS Support. Ek het gevolg na die letter nie, maar my nie die geval gee 'n bewegende gemiddelde. Dit herhaal dieselfde data punt oor en oor (die eerste data punt). So, ek glo nie die funksie om die Begindatum in die MyRST. Seek lyn, dus net die terugkeer van die eerste data punt. Laastens (miskien sal dit baie maklik maak) Ek is verward oor hoe die indekse werk. Ek het gedink jy kon net een primêre sleutel, maar blykbaar kan jy verskeie veld beperkinge te skep. Ek het probeer om dit te doen met die volgende data definisie navraag: ALTER TABLE Tabel1 ADD beperking NoDupes UNIEKE (CurrencyType, TransactionDate) Jammer oor die lengte van hierdie pos. Ek waardeur jou hulp. Die volgende voorbeeld funksie bere bewegende gemiddeldes gebaseer op 'n tafel met 'n primêre sleutel meervoudige veld. Die weeklikse waardes van buitelandse valuta word gebruik vir hierdie voorbeeld. Om die monster funksie skep, volg hierdie stappe: Maak die volgende tabel en stoor dit as Tabel1: Table: Tabel1 --------------------------- -------------- Veld Naam: CurrencyType Primêre Sleutel Data Type: text veldgrootte: 25 Veld Naam: TransactionDate Primêre Sleutel Data Type: Datum / Tyd formaat: Kort datum Veld Naam: Tempo Data Tipe : Geld desimale plekke: 4 Kyk die tabel in databladaansig en sleutel die volgende waardes: CurrencyType TransactionDate Tempo ----------------------------- --------------- Yen 8/6/93 0,0079 Yen 8/13/93 0,0082 Yen 8/20/93 0,0085 Yen 8/27/93 0,0088 Yen 9/3/93 0,0091 Mark 8/6/93 0,5600 Mark 8/13/93 0,5700 Mark 8/20/93 0,5800 Mark 8/27/93 0,5900 Mark 9/3/93 0,6000 Open 'n nuwe module en tik die volgende funksies: Function MAvgs (tydperke as integer, Begindatum, Type Name) Dim MyDB Soos databasis, MyRST Soos rekordstel, MySum Soos Double Dim ek, x Stel MyDB CurrentDb () Stel MyRST MyDB. OpenRecordset (Tabel1) Op Fout Hervat Volgende MyRST. Index PrimaryKey x Periodes - 1 ReDim Store ( x) MySum 0 want ek 0 Om x MyRST. MoveFirst MyRST. Seek, Type Name, Begindatum Hierdie twee veranderlikes moet wees in dieselfde volgorde as die primêre sleutel velde in die tabel. Store (i) MyRSTRate As ek LT x Dan Begindatum Begindatum - 7 Die 7 hier aanvaar weeklikse inligting 1 vir daaglikse data. As Begindatum Dit 8/6/93 Dan MAvgs Null: Exit funksie 8/6/93 vervang met die vroegste datum van die data in die tabel. MySum Store (i) MySum Volgende i MAvgs MySum / Periodes MyRST. Close End Function Skep die volgende navraag gebaseer op die Tabel1 tabel: Navraag: Query1 -------------------- ----------------------------------- Veld: CurrencyType Veld: TransactionDate Veld: Tempo Veld: Expr1: MAvgs ( 3, TransactionDate, CurrencyType) NOTA: Hierdie navraag sal 'n drie-week bewegende gemiddelde van die Tempo data te genereer. Om 'n langer of korter bewegende gemiddelde bereken, verander die nommer 3 in die Querys Expr1 kolom om die waarde wat jy wil bereken. Begin die soektog. Let daarop dat u die volgende drie weke bewegende gemiddelde vir elke geldeenheid. 'N leë waarde dui daarop dat daar nie genoeg vroeër waardes te bereken wat weke gemiddelde. CurrencyType TransactionDate Tempo Expr1 Mark 08/06/93 0,5600 Mark 08/13/93 0,5700 Mark 08/20/93 0,5800 0,57 Mark 08/27/93 0,5900 0,58 Mark 09/03/93 0,6000 0,59 jen 08/06/93 0,0079 Yen 08/13/93 0,0082 Yen 08/20/93 0,0085 0,0082 Yen 08/27/93 0,0088 0,0085 Yen 09/03/93 0,0091 0,0088 RE: Moving Gemiddelde Berekening dhookom (Programmeerder) 28 Junie 10 21:15 Hoe oud is dat kode dit nie die geval uitdruklik gebruik DAO en nie die geval te noem dat hierdie gewoond werk met gekoppel tafels. KODE Dim MyDB as DAO. Database, MyRST as DAO. Recordset. Ek sou 'n subquery gebruik eerder as om 'n rekordstel. Dit mag dalk so lyk: kode te kies CurrencyType, TransactionDate, tempo, (kies Gem (Rate) VAN Tabel1 B WAAR A. CurrencyType B. CurrencyType EN A. TransactionDate TUSSEN B. TransactionDate - 14 en B. TransactionDate) VAN Tabel1 'n re: bewegende gemiddelde berekening wat is regtig volmaak. Ek het regtig waardeer jou hulp. Maar die kode wat jy het is die berekening van die voorwaartse 14 daagse bewegende gemiddelde (die plasing van die bewegende gemiddelde in die rekord vir dag 1 van die gemiddelde, waar ek wou dit wees 'n agterlike soek gemiddelde, geplaas in 'n rekordtyd 14). Ek verander net effens na die volgende en dit blyk te wees, werk kies A. CurrencyType, A. TransactionDate, A. Rate, (SELECT Gem (Rate) VAN Tabel1 B WAAR A. CurrencyType B. CurrencyType EN B. TransactionDate TUSSEN A. TransactionDate - 14 en A. TransactionDate) AS Expr1 UIT Tabel1 AS Jy kan sien, al wat ek gedoen het, was ruil A vir B in die waar klousule. Dit is werklik 'n groot hulp vir my, en ek waardeer dit regtig. Ek het nie gesien kodering soos hierdie voor, en eerlik, ek dont regtig verstaan ​​nie. Ek dont weet hoe die SQL verstaan ​​wat B en A is. Ek neem aan dat hulle die skep van 'n soort van alternatiewe verwysing na Tabel1. As jy enige leiding kan gee sal ek dit baie waardeer. Ook, miskien 'n bietjie verwysing na die materiaal wat ek kan kyk na ek altyd baie opgewonde om iets nuuts oor VBA / SQL leer, en ek waardeer jou hulp RE: Moving Gemiddelde Berekening PHV (MIS) 29 Junie 10 12:22 verstaan ​​wat B en 'n is hulle alias es Re: Moving Gemiddelde Berekening Dankie, PHV. Dit is 'n beter sin reeds Re: Moving Gemiddelde Berekening joshery420 (TechnicalUser) 6. 10 Julie 15:06 Sjoe, nooit gekyk na SQL oog voor. Uiters nuttig. Im probeer om hierdie kode te funksioneer op my eie dataset kry en Im vas op 'n spesifieke probleem. pd2004, nie seker of die nuwe subquery kode gewerk dieselfde as jou ou VBA-kode of nie, maar met my data dit wys nog die rollende gemiddelde selfs al is daar Arent genoeg dae na daardie lengte van 'n gemiddelde te skep. bv As Im uitvoering van 'n 7 dag rollende gemiddelde, dag 1 toon dieselfde data in die kolom 7DayAvg as dit nie in die daaglikse data kolom. Dag 2 sal wys die gemiddelde Dae 1 en 2, ens Het enigeen van julle weet hoe om dit ook te los deur die kans, dankie vir die groot-kode wenk PHV. RE: Moving Gemiddelde Berekening joshery420 (TechnicalUser) 6. 10 Julie 15:08 Woeps, bedoel om te danke dhookom vir die kode wenk, nie PHV. Maar hey, te danke aan albei van julle. XD RE: Moving Gemiddelde Berekening Ek sal die beste oplossings te verlaat om die professionele mense hier, maar jy kan sien in my oorspronklike post hoe die Microsoft Hulp voorbeeld probeer om te hanteer nie. Hier is die kode: As Begindatum Dit 8/6/93 Dan MAvgs Null: Exit funksie 8/6/93 vervang met die vroegste datum van die data in die tabel. Hulle is net die funksie verlaat as die datum nie die geval is pas die kriteria. Ek dont weet as jy so iets kon neem in die aliasse kode wat deur dhookem. Ek dont like hul manier van hantering van hierdie, en ek vermoed dat dhookem n baie meer elegante oplossing sal bied. Vir my doeleindes die probleem wat jy beskryf is nie 'n bekommernis, maar ek sal belangstel in enige oplossings sien wees. RE: Moving Gemiddelde Berekening dhookom (Programmeerder) 6. 10 Julie 17:05 Jy kan probeer om met behulp kamer volstaat () te toets vir 'n telling van die aantal rekords. Let op: ongetoets notepad kode volg: kode te kies A. CurrencyType, A. TransactionDate, A. Rate, IIF ((kies Telling (Rate) VAN Tabel1 C WAAR A. CurrencyType C. CurrencyType EN C. TransactionDate TUSSEN A. TransactionDate - 14 en A. TransactionDate) 7, (SELECT Gem (Rate) VAN Tabel1 B WAAR A. CurrencyType B. CurrencyType EN B. TransactionDate TUSSEN A. TransactionDate - 14 en A. TransactionDate), Null) AS Expr1 UIT Tabel1 AS RE: Moving Gemiddelde CalculationAVG (Transact-SQL) Pas aL die totale funksie om alle waardes. Alles is die verstek. DISTINCT dui daarop dat, AVG uitgevoer word slegs op elke unieke geval van 'n waarde, ongeag hoeveel keer die waarde voorkom. uitdrukking is 'n uitdrukking van die presiese numeriese of geskatte numeriese data tipe kategorie, behalwe vir die tipe bietjie data. Totaal funksies en subqueries is nie toegelaat nie. OOR (partitionbyclause orderbyclause) partitionbyclause verdeel die resultaat stel wat deur die VANAF klousule in mure waaraan die funksie toegepas word. As nie gespesifiseer, die funksie behandel alle rye van die navraag gevolg gestel as 'n enkele groep. orderbyclause bepaal die logiese volgorde waarin die operasie uitgevoer word. orderbyclause word vereis. Vir meer inligting, sien OOR klousule (Transact-SQL). Die tipe terugkeer word bepaal deur die tipe van die geëvalueer gevolg van uitdrukking. desimale kategorie (p, s) As die tipe data van uitdrukking is 'n alias data tipe, die soort opbrengs is ook van die tipe alias data. Maar, as die tipe basis data van die alias datatipe bevorder, byvoorbeeld uit tinyint om Int. die terugkeer waarde is van die bevorder datatipe en nie die alias datatipe. AVG () bere die gemiddelde van 'n stel waardes wat deur die som van die waardes te deel deur die telling van nonnull waardes. As die som groter as die maksimum waarde vir die tipe data van die terugkeer waarde 'n fout sal teruggestuur word. AVG is 'n deterministiese funksie wanneer dit gebruik word sonder die oor en ORDER BY klousules. Dit is deterministiese wanneer gespesifiseerde met die oor en ORDER BY klousules. Vir meer inligting, sien Deterministiese en deterministiese funksies. A. Die gebruik van die som en AVG funksies vir berekeninge Die volgende voorbeeld word bereken dat die gemiddelde vakansie-ure en die som van siekteverlof ure wat die vise-presidente van Avontuur Werke Cycles gebruik. Elkeen van hierdie totaal funksies produseer 'n enkele opsomming waarde vir al die opgespoor rye. Die voorbeeld gebruik die AdventureWorks2012 databasis.

No comments:

Post a Comment