Sunday 12 November 2017

Wie Zu Berechnen A Moving Average In Ms Zugriff


Neue Daten werden der Tabelle täglich von Montag bis Freitag hinzugefügt, basierend auf den Börsenkursänderungen für diesen Tag. Die aktuelle Anforderung basiert auf dem VOLUME-Feld, das den Volumen anzeigt, der für eine bestimmte Aktie täglich gehandelt wird. ANFORDERUNG Um die durchschnittliche und die Gesamtmenge für die letzten 10,15 bzw. 30 Tage zu erhalten. METHODE VERWENDET AKTUELLES - Ich habe diese 9 SEPARATE QUERIES erstellt, um meine gewünschten Ergebnisse zu erhalten. Zuerst habe ich diese 3 Abfragen erstellt, um die letzten letzten 10,15 und 30 Termine aus der aktuellen Tabelle herauszunehmen. qryLast10DaysStored qryLast15DaysStored qryLast30DaysStored Dann habe ich geschaffen, um diese drei Anfragen für immer die jeweiligen Durchschnitte qrySymbolAvgVolume10Days qrySymbolAvgVolume15Days qrySymbolAvgVolume30Days Und dann habe ich diese drei Abfragen erstellt für das Erhalten der jeweiligen TOTALS qrySymbolTotalVolume10Days qrySymbolTotalVolume15Days qrySymbolTotalVolume30Days PROBLEM MIT aktuellen Methode konfrontiert - Nun, mein Problem ist, dass ich am Ende haben Up mit diesen so viele verschiedene Abfragen, während ich wollte die Ausgabe in One Single Query, wie in der Snapshot der Excel-Blatt gezeigt bekommen. LÖSUNG BENÖTIGT - Gibt es einen Weg, mit dem ich diese Pflichtfelder in EINS EINZIGES QUERY bekommen kann, damit ich nicht in mehrere Plätze für die benötigten Felder schauen muss Kann mir bitte jemand sagen, wie man all diese separaten Abfragen in einen - A) Entweder durch Herausnehmen oder Verschieben der Ergebnisse aus diesen separaten individuellen Abfragen zu einem. B) Oder durch eine neue Abfrage, die alle diese Felder in sich berechnet, so dass diese separaten individuellen Abfragen nicht mehr benötigt werden. Das wäre eine bessere Lösung, die ich denke. Eine Klärung über Termine Ein Freund könnte denken, warum ich die Methode der Verwendung von Top 10,15 und 30 für immer die letzten 10,15 und 30 Datumswerte verwendet. Warum habe ich nicht einfach den PC benutzt, um diese Werte zu bekommen oder so etwas wie - (VOLUME, tbl-B, TimeStamp ZWISCHEN Datum () - 10 UND Datum ()) Die Antwort ist, dass ich meine Abfrage verlange, um das Datum aus dem TIMESTAMP Feld, und führen Sie dann seine Berechnungen entsprechend für LAST MOST RECENT 10 Tage, 15 Tage, 30 Tage, für die die DATEN IN DER TABELLE VERFÜGBAR IST, OHNE BEHÄLTNIS, WAS DAS AKTUELLE DATUM IST. Es sollte nicht auf das aktuelle Datum in irgendeiner Weise abhängen. Wenn es eine bessere Methode oder effizienter Weg, um diese Fragen zu erstellen, dann bitte erleuchten. PS Ich habe eine SAMPLE-Datenbank, die die Daten für 6 Monate, vom 1. November 2011 bis 30. April 2012 und es hat auch die oben genannten Fragen in ihm. Beispieldatenbank mit QUERIEN Sie haben separate Abfragen, um 10DayTotalVolume und 10DayAvgVolume zu berechnen. Ich vermute, Sie können sowohl in einer Abfrage, qry10DayVolumes zu berechnen. Allerdings fragt mich das, ob 10DayAvgVolume jemals etwas anderes als 10DayTotalVolume 10 sein kann. Ähnliche Überlegungen gelten für die 15- und 30-Tage-Werte. Letztlich denke ich, dass du etwas willst, das auf einem Ausgangspunkt wie folgt basiert: Das geht davon aus, dass du qry15DayVolumes und qry30DayVolumes nach dem Ansatz angelegt hast, den ich für qry10DayVolumes vorgeschlagen habe. Wenn Sie die Anzahl der Abfragen reduzieren möchten, können Sie Unterabfragen für jede der qryDayVolumes gespeicherten Abfragen verwenden, aber versuchen Sie es auf diese Weise zuerst, um sicherzustellen, dass die Logik korrekt ist. In dieser zweiten Abfrage oben kann es ein Problem aufgrund von Feldnamen geben, die mit Ziffern beginnen. Schließen Sie diese Namen in eckigen Klammern oder re-alias sie in qry10DayVolumes. Qry15DayVolumes. Und qry30DayVolumes mit Aliasnamen, die mit Buchstaben anstelle von Ziffern beginnen. Ich habe die Abfrage wie oben geschrieben mit der 2. Upload. mdb Sie hochgeladen getestet, und es lief ohne Fehler von Access 2007. Hier ist die erste Zeile der Ergebnismenge aus dieser Abfrage: beantwortet 24. Oktober 12 um 19: 20Moving Average Calculation Moving Average Berechnungsbewegung Durchschnittliche Berechnung Ich versuche, einen gleitenden Durchschnitt für eine Reihe von Daten zu berechnen. Ich möchte den gleitenden Durchschnitt für jeden Punkt innerhalb der Daten generieren, um in einem Graphen zu zeigen. Wie auch immer, unten ist ein Beispiel von MS Support. Ich habe dem Brief gefolgt, aber meine gibt keinen gleitenden Durchschnitt. Es wiederholt den gleichen Datenpunkt immer wieder (der erste Datenpunkt). Also, ich glaube nicht, dass die Funktion das Startdatum in der MyRST. Seek-Zeile findet, also nur den ersten Datenpunkt zurückgibt. Schließlich (vielleicht macht das wirklich einfach) Ich bin verwirrt darüber, wie die Indizes funktionieren. Ich dachte, du könntest nur einen Primärschlüssel haben, aber anscheinend kannst du mehrere Feldbeschränkungen erstellen. Ich habe versucht, dies mit der folgenden Datendefinitionsabfrage zu tun: ALTER TABLE Table1 ADD CONSTRAINT NoDupes UNIQUE (CurrencyType, TransactionDate) Sorry über die Länge dieses Beitrags. Ich schätze Ihre Hilfe. Die folgende Beispielfunktion berechnet die Bewegungsdurchschnitte auf der Grundlage einer Tabelle mit einem Multifeld-Primärschlüssel. Für dieses Beispiel werden die wöchentlichen Werte der Fremdwährungen verwendet. Gehen Sie folgendermaßen vor, um die Beispielfunktion zu erstellen: Erstellen Sie die folgende Tabelle und speichern Sie sie als Tabelle1: Tabelle: Tabelle 1 --------------------------- -------------- Feldname: CurrencyType Primärschlüsseldatentyp: Textfeldgröße: 25 Feldname: TransactionDate Primärschlüssel Datentyp: DateTime Format: Kurz Datum Feldname: Rate Datentyp: Währung Dezimalstellen: 4 Zeigen Sie die Tabelle in der Datenblattansicht an und geben Sie die folgenden Werte ein: CurrencyType TransactionDate Rate ------------------------------- ------------- Yen 8693 0.0079 Yen 81393 0.0082 Yen 82093 0.0085 Yen 82793 0.0088 Yen 9393 0.0091 Marke 8693 0.5600 Marke 81393 0.5700 Marke 82093 0.5800 Marke 82793 0.5900 Marke 9393 0.6000 Öffnen Sie ein neues Modul und geben Sie die Folgende Funktionen: Funktion MAVgs (Perioden als Integer, StartDate, TypeName) Dim MyDB Als DATABASE, MyRST als Recordset, MySum als Double Dim i, x Set MyDB CurrentDb () Set MyRST MyDB. OpenRecordset (Tabelle1) Auf Fehler Wiederaufnahme Weiter MyRST. Index PrimaryKey x Perioden - 1 ReDim Store (x) MySum 0 Für i 0 Zu x MyRST. MoveFirst MyRST. Seek, TypeName, StartDate Diese beiden Variablen sollten in der gleichen Reihenfolge sein wie die Primärschlüsselfelder in Ihrer Tabelle. Speichern (i) MyRSTRate Wenn ich x dann StartDate StartDate - 7 Die 7 hier wähle wöchentliche Daten 1 für tägliche Daten. Wenn StartDate lt 8693 Dann MAVgs Null: Exit Function 8693 wird durch das früheste Datum der Daten in Ihrer Tabelle ersetzt. MySum Store (i) MySum Weiter i MAVgs MySum Perioden MyRST. Close End Function Erstellen Sie die folgende Abfrage basierend auf der Tabelle Table1: Abfrage: Query1 --------------------- ---------------------------------- Feld: CurrencyType Feld: TransactionDate Feld: Rate Feld: Expr1: MAVgs (3 , TransactionDate, CurrencyType) HINWEIS: Diese Abfrage erzeugt einen dreimonatigen gleitenden Durchschnitt der Ratendaten. Um einen längeren oder kürzeren gleitenden Durchschnitt zu berechnen, ändern Sie die Nummer 3 in der Spalte Abfrage Expr1 auf den Wert, den Sie berechnen möchten. Führen Sie die Abfrage aus. Beachten Sie, dass Sie den folgenden dreiwöchigen gleitenden Durchschnitt für jede Währung sehen. Ein Nullwert gibt an, dass es nicht genügend frühere Werte gab, um diesen Wochendurchschnitt zu berechnen. WährungType TransaktionDatum Rate Expr1 Markierung 080693 0.5600 Marke 081393 0.5700 Marke 082093 0.5800 0.57 Marke 082793 0.5900 0.58 Marke 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: Bewegliche durchschnittliche Berechnung dhookom (Programmierer) 28 Jun 10 21:15 Wie alt ist dieser Code Es ist nicht explizit DAO und nicht erwähnen, dass dies nicht mit verknüpften Tabellen funktionieren wird. Dim MyDB als DAO. Database, MyRST als DAO. Recordset. Ich würde eine Unterabfrage eher als ein Recordset verwenden. Es könnte so aussehen: SELECT CurrencyType, TransactionDate, Rate, (SELECT Avg (Rate) FROM Table1 B WHERE A. CurrencyType B. CurrencyType AND A. TransactionDate BETWEEN B. TransactionDate - 14 UND B. TransactionDate) FROM Table1 A RE: Verschieben Durchschnittliche Berechnung Das ist wirklich perfekt. Ich schätze deine Hilfe sehr. Allerdings ist der Code, den Sie gaben, die Vorwärts-14-Tage-Gleitender Durchschnitt (Platzierung der gleitenden Durchschnitt in den Datensatz für Tag 1 des Durchschnitts, wo ich wollte, dass es sich um eine rückwärts schauende Durchschnitt, platziert in Rekord 14). Ich änderte nur etwas zu den folgenden und es scheint zu funktionieren SELECT A. CurrencyType, A. TransactionDate, A. Rate, (SELECT Avg (Rate) FROM Table1 B WHERE A. CurrencyType B. CurrencyType AND B. TransactionDate BETWEEN A. TransactionDate - 14 UND A. TransactionDate) AS Expr1 von Tabelle1 AS A Sie können sehen, alles was ich tat, war Austausch A für B in der where-Klausel. Das ist eine wirklich große Hilfe für mich und ich schätze es wirklich. Ich habe es noch nicht gesehen, und ehrlich gesagt, das verstehe ich nicht wirklich. Ich weiß nicht, wie die SQL versteht, was B und A sind. Ich gehe davon aus, dass sie eine Art alternativer Bezug auf Tabelle 1 schaffen. Wenn Sie irgendeine Anleitung geben können, würde ich es wirklich schätzen. Auch vielleicht ein Hinweis auf Material, das ich anschauen könnte Ich bin immer sehr aufgeregt, um etwas Neues über VBASQL zu lernen, und ich schätze wirklich Ihre Hilfe RE: Moving Average Calculation PHV (MIS) 29 Jun 10 12:22 versteht was B und A Sind sie alias es RE: Moving Average Calculation Vielen Dank, PHV. Es ist schon besser sinnvoll RE: Moving Average Calculation joshery420 (TechnicalUser) 6 Jul 10 15:06 Wow, schaute niemals auf SQL View vor. Sehr hilfreich Ich versuche, diesen Code zu bekommen, um in meinem eigenen Dataset zu funktionieren und Im auf einem bestimmten Problem festzuhalten. Pd2004, nicht sicher, ob der neue Unterabfrage-Code genauso funktioniert wie dein alter VBA-Code oder nicht, aber mit meinen Daten zeigt es immer noch den rollenden Durchschnitt, auch wenn es dort genug Tage gibt, um diese Länge eines Durchschnitts zu schaffen. z. B. Wenn Im, der einen 7-tägigen Roll-Durchschnitt durchführt, zeigt Tag 1 dieselben Daten in der Spalte 7DayAvg wie in der Tagesdatenspalte. Tag 2 würde den Durchschnitt von Tagen 1 und 2, etc. zeigen. Jeder von euch Jungs wissen, wie man dies durch Zufall zu beheben Auch danke für die tolle Code-Tipp PHV. RE: Verschieben Durchschnittliche Berechnung joshery420 (TechnicalUser) 6 Jul 10 15:08 Woops, gedankt, danke Dhookom für die Code-Tipp, nicht PHV. Aber hey, dank euch beiden. XD RE: Moving Average Calculation Ich werde die besten Lösungen für die Profis hier zu verlassen, aber Sie können in meinem ursprünglichen Post sehen, wie die Microsoft Hilfe Beispiel versucht, das zu behandeln. Hier ist der Code: Wenn StartDate lt 8693 Dann wird MAVgs Null: Exit Function 8693 durch das früheste Datum der Daten in deiner Tabelle ersetzt. Sie verlassen gerade die Funktion, wenn das Datum nicht den Kriterien entspricht. Ich weiß nicht, ob du so etwas in den Aliase-Code einbringen kannst, der von dhookem zur Verfügung gestellt wird. Ich mag ihre Art, dies zu behandeln, und ich vermute, dass dhookem eine viel elegantere Lösung bieten wird. Für meine Zwecke ist die Frage, die du beschreibst, kein Anliegen, aber ich werde daran interessiert sein, irgendwelche Lösungen zu sehen. RE: Moving Average Calculation dhookom (Programmierer) 6 Jul 10 17:05 Du könntest mit IIf () versuchen, auf die Anzahl der Datensätze zu testen. Achtung: Ungetesteter Notepad-Code folgt: SELECT A. CurrencyType, A. TransactionDate, A. Rate, IIF ((SELECT Count (Rate) FROM Table1 C WHERE A. CurrencyType C. CurrencyType AND C. TransactionDate BETWEEN A. TransactionDate - 14 UND A. TransactionDate) 7, (SELECT Avg (Rate) FROM Tabelle1 B WHERE A. CurrencyType B. CurrencyType AND B. TransactionDate BETWEEN A. TransactionDate - 14 UND A. TransactionDate), Null) AS Expr1 AUS Tabelle1 AS A RE: Verschieben von durchschnittlichen BerechnungenCalculation Ausführen von Summen und Verschieben von Durchschnittswerten in Microsoft Access mit Total Access Statistics Microsoft Access bietet keine integrierten Funktionen zur Berechnung der laufenden Summen an. Laufen Summen sind Zusammenfassungen über eine festgelegte Anzahl von Datensätzen. Zum Beispiel, ein 30 Tage gleitenden Durchschnitt, dass youd wie für jeden Datensatz auf der Grundlage seines Wertes und seiner vorherigen 29 Datensätze zu berechnen. Glücklicherweise führt Total Access Statistics eine breite Palette von laufenden Gesamtberechnungen über Ihre Aufzeichnungen durch: Führen Sie Zusammenfassungen für einen bewegten Satz von Datensätzen aus, um Summen, Mittelwerte, Minimum, Maximum, Bereich, Median, Standardabweichung usw. zu berechnen. Platzieren Sie den Summary-Wert in a Feld in Ihrer Datenquelle Analysieren Sie die Daten in Ihren Access-Tabellen und - Abfragen (einschließlich der verknüpften Daten) Unterstützung der Gruppierung auf Feldwerten, so dass Sie in einem Durchlauf mehrere Analysen durchführen können. Die Gesamtsumme für Total Access Statistics für Microsoft Access 2007 und X.7 wurden hinzugefügt Versionen für Access 2003 und früher. Ausführen von Summen Übersicht Laufen Summen sind Berechnungen für eine festgelegte Anzahl von Datensätzen über Ihre Tabelle oder Abfrage. Einfache Erstellung von Ergebnissen wie laufende Summen, Mittelwerte, Minimum, Maximum, Median usw. und platzieren sie in Felder in Ihrer Datenquelle. Diese Berechnungen stehen zur Verfügung: Durchschnitt (Mittel) Zähler Beobachtungen Summe Summe Minimum Maximale Reichweite Standardabweichung Abweichung Variationskoeffizient Standardfehler Median Modus Modus Zähler Geometrisch Mittlerer Harmonischer Mittlerer Wurzel Mittlerer Quadrat Schiefe Kurtosis Standard Fehler der Schiefe Standard Fehler der Kurtosis Bis zu fünf Felder In deiner Tabelle kann auf einmal aktualisiert werden. Wie das Ausführen von Gesamtwerten berechnet wird, können Sie beispielsweise den Durchschnitt der letzten 10 Datensätze berechnen. Dieser gleitende Durchschnitt wird auf der Grundlage der Sortierreihenfolge Ihrer Daten bestimmt, wobei der Mittelwert für diese 10 Datensätze berechnet und in ein Feld gesetzt wird, das Sie mit Datensatz 10 bezeichnen. Für Satz 11 wird Datensatz 1 ignoriert und die Berechnung für Datensätze 2 bis durchgeführt 11, etc. Wie die anderen Features können Sie Gruppenfelder angeben, so dass jede Gruppe ihre eigenen laufenden Summen hat. Diese Funktion erstellt keine separate Tabelle. Die Ergebnisse werden in die Felder eingefügt, die Sie in Ihrer Datenquelle angeben. Ausführen von Summenfeldauswahl Mit dem Feldauswahlbildschirm für das Ausführen von Summen können Sie die zu sortierenden Felder und die Felder festlegen, um die Ergebnisse zu platzieren: Mit Gruppenfeldern können Sie für jede Kombination von eindeutigen Werten unter den Gruppenfeldern einen separaten Analysetyp erzeugen. Die Sortierfelder bestimmen die Sortierreihenfolge Ihrer Datensätze, um die laufenden Werte zu berechnen. Geben Sie mindestens ein Sortierfeld an. Dies kann das Feld, das Sie die Berechnungen durchführen, einschließen. Die Felder werden in aufsteigender Reihenfolge sortiert. Geben Sie bis zu fünf Felder an, um mit Ihren Summen zu aktualisieren. Vergewissern Sie sich, dass die Felder Datentypen sind, die die Daten enthalten können, die Sie in sie setzen möchten. Zum Beispiel sollten sie doppelt sein, wenn Sie erwarten, Werte wie Durchschnitt (Mittelwert), Varianz usw. zu speichern. Ausführen von Gesamtoptionen Nach dem Auswählen der Felder werden die Optionen für die laufenden Summen angezeigt: Feld zu analysieren Geben Sie das Feld an, auf dem die Berechnungen basieren. Dieses Feld kann ein Feld sein, das als Sortierfeld angegeben wurde. Zum Beispiel können Sie den laufenden Durchschnitt auf der Grundlage von Verkäufen sortieren, die in aufsteigender Reihenfolge sortiert sind. Anzahl der Datensätze, um die Summen zu berechnen Geben Sie die Anzahl der Datensätze in der bewegten Summe an. Wenn Sie 0 angeben, werden die Summen für jeden Datensatz berechnet. Wenn Sie eine bestimmte Nummer eingeben, basieren die Berechnungen auf der Anzahl der Datensätze. Der erste Datensatz wird gelöscht, wenn der nächste hinzugefügt wird, und die Berechnungen basieren auf diesem bewegten Satz von Datensätzen. Initial Set of Records Wenn Sie die Anzahl der Datensätze angeben, um Summen zu berechnen, gibt es eine Option, um festzustellen, was passiert, bevor Sie diese Anzahl von Datensätzen erreichen. Entweder sollten die Summen auf der Grundlage der verarbeiteten Aufzeichnungen übersprungen oder berechnet werden. Wählen Sie Berechnen, um die laufenden Summen zu sehen, unabhängig davon, ob die Anzahl der bewegten Datensätze erreicht ist. Wählen Sie Leer leer, um nur laufende Summen zu haben, wenn die angegebene Anzahl von Datensätzen ohne Berechnungen für kleinere Datensätze erreicht wird. Berechnungsart Es stehen viele Berechnungsarten zur Verfügung. Geben Sie die gewünschte Option für jedes der ausgewählten Aktualisierungsfelder an. Ausführen von Summen Ergebnissen Die laufenden Summenergebnisse werden in die angegebenen Aktualisierungsfelder platziert: Beispiel für das Ausführen von Summen, die in den rechten vier Feldern dieser Microsoft Access-Tabelle platziert wurden In diesem Beispiel wurden die Daten nach Datum und Auftrags-ID mit der Berechnung auf dem Verkauf sortiert Feld. Beachten Sie, dass die Werte im RunningCount-Feld von 1 auf 10 ansteigen. Sobald es 10 erreicht hat, bleibt es bei 10, denn das ist die maximale Anzahl von Datensätzen in der bewegten Summe. Das RunningTotal-Feld zeigt die Summe der Verkäufe über die Datensätze im bewegten Satz von Datensätzen an. Da die Option zur Berechnung der Werte für den anfänglichen Satz von Datensätzen ausgewählt wurde (bevor es 10 Datensätze erreicht hat) werden die Werte angezeigt. Andernfalls hätten die ersten 9 Datensätze Nullwerte. Interaktive Wizard und VBA Programmatische Schnittstellen Total Access Statistics können Sie interaktiv Ihre Berechnungen über ihre Wizard-Schnittstelle generieren, um die Datenquelle, Felder und Analysen ohne Programmierung einfach auszuwählen. Nachdem Sie Ihre Auswahl angeben, werden sie automatisch als Szenario in Ihrer Datenbank gespeichert, so dass Sie sie in Zukunft wieder ausführen können, wenn sich Ihre Daten ändern. Eine VBA-Statistik-Funktion ist auch verfügbar, so dass Sie diese Ergebnisse aus Code generieren können. Sie können problemlos alle gespeicherten Szenarien ausführen, indem Sie eine einzelne Prozedur in der Total Access Statistics VBA-Bibliothek aufrufen. Die Bibliothek enthält eine lizenzgebührenfreie Laufzeitlizenz, so dass Sie sie mit Ihrer Access-Datenbank einbinden und sie an Nicht-Total Access Statistics-Besitzer verteilen können. Rufen Sie die Funktion von einem Button OnClick-Ereignis oder einem anderen Prozess auf, und die Ergebnisse werden für Sie generiert. Sie können sogar die integrierte Benutzeroberfläche verstecken, damit Ihre Benutzer nicht einmal wissen, dass Total Access Statistics läuft. Sie können mit Ihren statistischen Analyse-Fähigkeiten begeistert sein Zusätzliche Details der Berechnungen verfügbar in Total Access Statistics Hier sind einige zusätzliche Ressourcen und Details über einige der Datenanalyse, die Sie auf Ihrem Microsoft Access Daten mit Total Access Statistics durchführen können: Financial Cash Flow Berechnungen Verwenden Sie diskontierte Bargeld (NPV), Present Value (PV), Future Value (FV), Interne Rendite (IRR), Modified Interne Rendite (MIRR) für periodische und zeitabhängige Zahlungen und Quittungen. Perzentile Berechnungen Berechnen Sie verschiedene Arten von Perzentilen: Median, Quartile, Quintile, Oktate, Decile, Perzentile, jedes X.5-Perzentil, und legen Sie sie in eine Tabelle oder aktualisieren Sie ein bestehendes Feld mit dem Datensatz Perzentil Wert. Laufen von Summen und gleitenden Durchschnitten Fassen Sie einen verschiebenden Satz von Datensätzen zusammen, um laufende Summen, Bewegungsdurchschnitte, Minimum, Maximum, Bereich, Median, Standardabweichung usw. zu berechnen. Daten Normalisierung (Data Transpose) Transponieren Sie nicht normalisierte Daten, so dass Sie leicht analysieren und pflegen können es. Regressionen Einfache, multiple und polynomische Regressionen mit Berechnung von Gleichungskoeffizienten, ANOVA und Resttabelle Kreuztabellen und Chi-Quadrat Fortgeschrittene Kreuztabellen mit Prozentsatz von Zeilen, Spalten und Summen, die als Datensätze oder Spalten angezeigt werdenMoving Average in Query Re: Moving Average in Query Do you Bedeuten nur die letzten vier Wochen Daten (also ist es wechseln jede Woche) Was bedeutet die Daten in deinem JahrWeek-Feld aussehen Ist es als Text der Zahl TIPPS FÜR FINDEN EXCEL LÖSUNGEN formatiert 1. Verwenden Sie die integrierte Hilfe, die mit ExcelAccess kommt 2. Verwenden Sie die Suchfunktionalität auf dieser Karte. 3. Eine Menge VBA-Code kann mit dem Macro Recorder erworben werden. Gib einem Mann einen Fisch, füttere ihn für einen Tag. Lehre einen Mann zu fischen, füttere ihn für das Leben Gerrit. B sagte: Mai 6th, 2012 05:31 PM Re: Moving Average in Abfrage Joe4, Nein, ich möchte den gleitenden Durchschnitt über 4 Wochen zu berechnen. Field YearWeek sieht aus wie 201201 für Woche 1 von 2012, und es ist als Nummer formatiert. Re: Moving Average in Query OK, unabhängig von Ihren Antworten auf die vorherigen Fragen, ich glaube, ich habe eine Lösung, die für jede Instanz arbeiten sollte. Zuerst habe ich eine benutzerdefinierte Funktion erstellt, die Ihre Wochennummer in eine Gesamtzahl von Wochen umwandelt. Es dauert das Jahr und multipliziert mit 52, und fügt dann die Monate in den letzten zwei Nummernpositionen hinzu. Das UDF sieht so aus: Beachten Sie, dass es nicht notwendig ist, eine UDF zu verwenden, da Sie diese Formel direkt in Ihre Abfragen verwenden können, aber da ich sie wiederverwende, ist es oft einfacher und macht Ihre Formeln besser lesbar diesen Weg. Dann habe ich eine Abfrage erstellt, um die maximale YearWeek für jede AreaProduct ID Kombination zu berechnen. Ich habe nur auf den Feldern Bereich und Produkt-ID-Felder gruppiert und nahm den maximalen YearWeek-Wert (wenn Sie mit Aggregate Queries nicht vertraut sind, empfehle ich, sie in Access integrierte Hilfedateien zu überprüfen). Angenommen, ein Tabellenname von MyTable, hier ist, was der SQL-Code dieser Abfrage aussieht: Ich nannte diese Abfrage MyMaxQuery. Ich habe dann eine neue Abfrage erstellt, in der wir uns der ursprünglichen Tabelle (MyTable) zu dieser Abfrage auf den Feldern Bereich und Produkt ID anschließen. Ich habe dann ein kalkuliertes Feld namens Check erstellt, wo ich überprüfe, ob das YearMonth-Feld größer oder gleich dem max YearWeek-Wert (von der vorherigen Abfrage) minus 3. Wenn es ist, gib ich ein 1 zurück. Ich füge dann Kriterien hinzu Zu dieser Abfrage, um nur die Werte gleich 1 zurückzugeben. Damit beschränkt man die Daten auf die letzten 4 Monate. Jetzt ändere ich diese Abfrage zu einer Aggregate Query, und nimm den Durchschnitt der Menge, um zu bekommen, was du willst. Der SQL-Code für diese Abfrage sieht wie folgt aus: TIPPS FÜR FINDEN EXCEL LÖSUNGEN 1. Verwenden Sie die integrierte Hilfe, die mit ExcelAccess kommt. 2. Verwenden Sie die Suchfunktionalität auf dieser Karte 3. Mit dem Macro Recorder können viele VBA-Code erworben werden . Gib einem Mann einen Fisch, füttere ihn für einen Tag. Lehre einen Mann zum Fischen, füttere ihn fürs Leben

No comments:

Post a Comment