Moving Average Calculation. Moving Average Calculation. Moving 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 zu generieren, um in einer Grafik zu zeigen Anyway, unten ist Ein Beispiel von MS Support Ich habe dem Brief gefolgt, aber meins tut nicht einen gleitenden Durchschnitt Es wiederholt den gleichen Datenpunkt über und über den ersten Datenpunkt Also ich glaube nicht, dass die Funktion das Startdatum in der Zeile findet Nur die erste Datenpunkt zurückgeben. Finally vielleicht wird dies wirklich einfach Ich bin verwirrt darüber, wie die Indizes funktionieren Ich dachte, Sie könnten nur einen Primärschlüssel haben, aber anscheinend können Sie mehrere Feldbeschränkungen erstellen Ich habe versucht, dies mit den folgenden Daten zu tun Definition query. ALTER TABELLE Tabelle1 ADD CONSTRAINT NoDupes UNIQUE CurrencyType, TransactionDate. Sorry über die Länge dieses Beitrags Ich schätze Ihre Hilfe. Die folgende Beispielfunktion berechnet Bewegungsdurchschnitte basierend auf einer Tabelle mit einem Multifeld-Primärschlüssel Die wöchentlichen Werte von Fremdwährungen Werden für dieses Beispiel verwendet Um die Beispielfunktion zu erstellen, folgen Sie diesen Schritten. Erstellen Sie die folgende Tabelle und speichern Sie sie als Tabelle1 Tabelle Tabelle1 ------------------------ ----------------- Feldname Währung Typ Primärschlüssel Datentyp Textfeld Größe 25.Feld Name TransactionDate Primärschlüssel Datentyp Datum Zeit Format Kurz Datum. Feld Name Rate Datentyp Währung Dezimalstellen 4.Suchen Sie die Tabelle in Datenblattansicht und geben Sie die folgenden Werte ein Währungsart Transaktionsrate ---------------------------------- ---------- 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.Öffnen Sie ein neues Modul und geben Sie die folgenden Funktionen ein. Funktion MAvgs Perioden Als Integer, StartDate, TypeName Dim MyDB Als DATABASE, MyRST As Recordset, MySum Als Double Dim i, x Set MyDB CurrentDb Set MyRST. On Error Fortsetzen Weiter. PrimaryKey x Perioden - 1 ReDim Store x MySum 0.Für i 0 Zu x, TypeName, StartDate. Diese beiden Variablen sollten in der gleichen Reihenfolge sein wie die Primärschlüsselfelder in deiner Tabelle Store i MyRST Rate. If ix Dann StartDate StartDate - 7 Die 7 nimmt hier wöchentliche Daten 1 für tägliche Daten an. Wenn StartDate 8 6 93 Dann MAVgs Null Exit Funktion 8 6 93 wird durch das früheste Datum der Daten in deiner Tabelle ersetzt MySum Store i MySum Weiter i. MAvgs MySum Perioden End Function. Create die folgende Abfrage basierend auf der Tabelle1 Tabelle Query Query1 ----------- -------------------------------------------- Feld WährungType Feld TransactionDate Feldrate Feld Expr1 MAvgs 3, TransactionDate, CurrencyType. NOTE Diese Abfrage generiert 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 s 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 diese Woche zu berechnen s durchschnittlicher Währungstyp Transaktionsrate 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 Yen 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 Average Calculation. dhookom Programmierer 28 Jun 10 21 15.How alt ist dieser Code Es doesn t explizit DAO verwenden und nicht zu erwähnen, dass dies gewann t Arbeit mit verknüpften Tabellen. Dim MyDB Als MyRST als. Ich würde eine Unterabfrage anstatt ein Re-Cord-Set verwenden Es könnte so etwas aussehen. WÄHLEN WährungType, TransactionDate, Rate, SELECT Avg Rate von Tabelle1 B WO UND ZWISCHEN - 14 UND VON Table1 A. RE Moving Average Calculation. That ist wirklich Perfekt Ich schätze Ihre Hilfe Allerdings ist der Code, den Sie gaben, berechnen die Vorwärts-14-Tage-Gleitender Durchschnitt Platzierung der gleitenden Durchschnitt in den Rekord für Tag 1 des Durchschnitts, wo ich wollte, dass es ein rückwärts schauender Durchschnitt, in Rekord 14 I gesetzt Änderte sich nur geringfügig zu dem folgenden und es scheint zu funktionieren. SELECT SELECT Avg Rate von Tabelle1 B WO UND ZWISCHEN - 14 UND 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, dass ich es noch nicht gesehen habe, und ehrlich gesagt, ich verstehe es wirklich nicht. Ich weiß nicht, wie das SQL versteht, was B und A sind, ich nehme an, dass sie sind Schaffung einer Art von alternativen Verweis auf Table1 Wenn Sie irgendeine Anleitung geben könnte, 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 VBA SQL zu lernen, und ich schätze wirklich Ihre Hilfe. RE Moving Average Calculation. PHV MIS 29 Jun 10 12 22.Versand, was B und A sind sie sind alias es. RE Moving Average Calculation. Thank you, PHV Es ist besser sinnvoll. RE Moving Average Calculation. joshery420 TechnicalUser 6 Jul 10 15 06.Wow, schaute nie auf SQL-Ansicht vor Supremely hilfreich Ich versuche, diesen Code zu bekommen, um in meinem eigenen Dataset zu funktionieren und ich bin auf einem bestimmten Problem pd2004 stecken, nicht sicher, ob der neue Unterabfrage-Code das gleiche wie Ihr alt war VBA-Code oder nicht, aber mit meinen Daten zeigt es immer noch den rollenden Durchschnitt, auch wenn es nicht genug Tage gibt, um diese Länge eines Durchschnitts zu erstellen. Wenn ich also einen 7-Tage-Roll-Durchschnitt durchführe, zeigt Tag 1 die gleichen Daten in der Spalte 7DayAvg Wie es in der täglichen Daten Spalte Tag 2 würde der Durchschnitt der Tage 1 und 2, etc. zeigen, jeder von euch Jungs wissen, wie man dies durch Zufall zu beheben Auch danke für die große Code-Tipp PHV. RE Moving Average Calculation. joshery420 TechnicalUser 6 Jul 10 15 08.Woops, gedankt, danke Dhookom für die Code-Tipp, nicht PHV Aber hey, dank beiden von euch XD. RE Moving Average Calculation. I wird die besten Lösungen für die Profis hier zu verlassen, aber Sie können in sehen Meine ursprüngliche Post, wie das Microsoft-Hilfe-Beispiel versucht, das zu behandeln Hier ist der Code. If StartDate 8 6 93 Dann wird MAVgs Null Exit Function 8 6 93 durch das früheste Datum der Daten in deiner Tabelle ersetzt. Sie verlassen gerade die Funktion if Das Datum passt nicht zu den Kriterien, die ich nicht kenne, wenn man so etwas in den Aliase-Code einbringen könnte, der von dhookem zur Verfügung gestellt wird. Ich mag es nicht, diese Art zu behandeln, und ich vermute, dass dhookem eine viel elegantere Lösung für meine Zwecke bietet Das Problem, das du beschreibst, ist kein Anliegen, aber ich werde daran interessiert sein, irgendwelche Lösungen zu sehen. RE Moving Average Calculation. dhookom Programmer 6 Jul 10 17 05.Sie könnten versuchen, IIf zu versuchen, für eine Anzahl der Datensätze Achtung ungetestet Notizblock Code folgt. SELECT IIF SELECT Zählrate FROM Table1 C WO UND ZWISCHEN - 14 UND SELECT Avg Rate FROM Tabelle1 B WO UND ZWISCHEN - 14 UND AS Expr1 VON Table1 AS A. RE Moving Average Calculation. Ich versuche, einen Weg zu finden Berechnen Sie einen bewegten kumulativen Durchschnitt ohne Speicherung der Zählung und Gesamtdaten, die bis jetzt empfangen wurde. Ich kam mit zwei Algorithmen, aber beide müssen die Zähler zu speichern. new durchschnittliche alte Zählung alte Daten nächste Daten nächsten count. new durchschnittlichen alten durchschnittlichen nächsten Daten - Alte durchschnittliche nächste count. The Problem mit diesen Methoden ist, dass die Zählung größer und größer wird, was zu verlieren Präzision in der daraus resultierenden Durchschnitt. Die erste Methode verwendet die alte Zählung und nächste Zählung, die offensichtlich 1 auseinander Dies hat mich denken, dass es vielleicht gibt Ein Weg, um die Zählung zu entfernen, aber leider habe ich es noch nicht gefunden. Es hat mir ein bisschen weiter geholt, was in der zweiten Methode, aber immer noch zählen ist vorhanden. Ist es möglich, oder bin ich nur auf der Suche nach dem unmöglichen 12 at 8 46.Moving Average Calculation. Moving Average Calculation. Moving 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 zu generieren, um in einem zu zeigen Grafisch Wie auch immer, unten ist ein Beispiel von MS-Unterstützung Ich habe dem Brief gefolgt, aber meins tut nicht einen gleitenden Durchschnitt Es wiederholt den gleichen Datenpunkt über und über den ersten Datenpunkt Also ich glaube nicht, dass die Funktion das Startdatum findet In der Zeile, also nur die Rückkehr der erste Datenpunkt. Finally vielleicht wird dies wirklich einfach Ich bin verwirrt darüber, wie die Indizes funktionieren Ich dachte, Sie könnten nur einen Primärschlüssel haben, aber anscheinend können Sie mehrere Feldbeschränkungen, die ich versucht habe, zu machen Dies mit der folgenden Datendefinition query. ALTER TABELLE Tabelle1 ADD CONSTRAINT NoDupes UNIQUE CurrencyType, TransactionDate. Sorry über die Länge dieses Beitrags schätze ich Ihre Hilfe. Die folgende Beispielfunktion berechnet Bewegungsdurchschnitte auf der Grundlage einer Tabelle mit einem Multifeld-Primärschlüssel Wöchentliche Werte von Fremdwährungen werden für dieses Beispiel verwendet Um die Beispielfunktion zu erstellen, folgen Sie diesen Schritten. Erstellen Sie die folgende Tabelle und speichern Sie sie als Tabelle1 Tabelle Tabelle1 ------------------- ---------------------- Feldname CurrencyType Primärschlüssel Datentyp Textfeld Größe 25.Field Name TransactionDate Primärschlüssel Datentyp Datum Zeit Format Kurz Datum. Field Name Rate Datentyp Währung Dezimal Places 4.Sehen Sie die Tabelle in Datenblattansicht und geben Sie die folgenden Werte ein Währungsart TransactionDate Rate ----------------------------- --------------- 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.Öffnen Sie ein neues Modul und geben Sie die folgenden Funktionen ein. Function MAVgs Perioden Als Integer, StartDate, TypeName Dim MyDB Als DATABASE, MyRST Als Recordset, MySum als Double Dim i, x Set MyDB CurrentDb Set MyRST. On Fehler Fortsetzen Weiter. PrimaryKey x Perioden - 1 ReDim Store x MySum 0.Für i 0 Zu x, TypeName, StartDate. Diese beiden Variablen sollten in der gleichen Reihenfolge sein wie die Primärschlüsselfelder in deiner Tabelle Store i MyRST Rate. If ix Dann StartDate StartDate - 7 Die 7 nimmt hier wöchentliche Daten 1 für tägliche Daten an. Wenn StartDate 8 6 93 Dann MAVgs Null Exit Funktion 8 6 93 wird durch das früheste Datum der Daten in deiner Tabelle ersetzt MySum Store i MySum Weiter i. MAvgs MySum Perioden End Function. Create die folgende Abfrage basierend auf der Tabelle1 Tabelle Query Query1 ----------- -------------------------------------------- Feld WährungType Feld TransactionDate Feldrate Feld Expr1 MAvgs 3, TransactionDate, CurrencyType. NOTE Diese Abfrage generiert 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 s 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 diese Woche zu berechnen s durchschnittlicher Währungstyp Transaktionsrate 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 Yen 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 Average Calculation. dhookom Programmierer 28 Jun 10 21 15.How alt ist dieser Code Es doesn t explizit DAO verwenden und nicht zu erwähnen, dass dies gewann t Arbeit mit verknüpften Tabellen. Dim MyDB Als MyRST als. Ich würde eine Unterabfrage anstatt ein Re-Cord-Set verwenden Es könnte so etwas aussehen. WÄHLEN WährungType, TransactionDate, Rate, SELECT Avg Rate von Tabelle1 B WO UND ZWISCHEN - 14 UND VON Table1 A. RE Moving Average Calculation. That ist wirklich Perfekt Ich schätze Ihre Hilfe Allerdings ist der Code, den Sie gaben, berechnen die Vorwärts-14-Tage-Gleitender Durchschnitt Platzierung der gleitenden Durchschnitt in den Rekord für Tag 1 des Durchschnitts, wo ich wollte, dass es ein rückwärts schauender Durchschnitt, in Rekord 14 I gesetzt Änderte sich nur geringfügig zu dem folgenden und es scheint zu funktionieren. SELECT SELECT Avg Rate von Tabelle1 B WO UND ZWISCHEN - 14 UND 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, dass ich es noch nicht gesehen habe, und ehrlich gesagt, ich verstehe es wirklich nicht. Ich weiß nicht, wie das SQL versteht, was B und A sind, ich nehme an, dass sie sind Schaffung einer Art von alternativen Verweis auf Table1 Wenn Sie irgendeine Anleitung geben könnte, 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 VBA SQL zu lernen, und ich schätze wirklich Ihre Hilfe. RE Moving Average Calculation. PHV MIS 29 Jun 10 12 22.Versand, was B und A sind sie sind alias es. RE Moving Average Calculation. Thank you, PHV Es ist besser sinnvoll. RE Moving Average Calculation. joshery420 TechnicalUser 6 Jul 10 15 06.Wow, schaute nie auf SQL-Ansicht vor Supremely hilfreich Ich versuche, diesen Code zu bekommen, um in meinem eigenen Dataset zu funktionieren und ich bin auf einem bestimmten Problem pd2004 stecken, nicht sicher, ob der neue Unterabfrage-Code das gleiche wie Ihr alt war VBA-Code oder nicht, aber mit meinen Daten zeigt es immer noch den rollenden Durchschnitt, auch wenn es nicht genug Tage gibt, um diese Länge eines Durchschnitts zu erstellen. Wenn ich also einen 7-Tage-Roll-Durchschnitt durchführe, zeigt Tag 1 die gleichen Daten in der Spalte 7DayAvg Wie es in der täglichen Daten Spalte Tag 2 würde der Durchschnitt der Tage 1 und 2, etc. zeigen, jeder von euch Jungs wissen, wie man dies durch Zufall zu beheben Auch danke für die große Code-Tipp PHV. RE Moving Average Calculation. joshery420 TechnicalUser 6 Jul 10 15 08.Woops, gedankt, danke Dhookom für die Code-Tipp, nicht PHV Aber hey, dank beiden von euch XD. RE Moving Average Calculation. I wird die besten Lösungen für die Profis hier zu verlassen, aber Sie können in sehen Meine ursprüngliche Post, wie das Microsoft-Hilfe-Beispiel versucht, das zu behandeln Hier ist der Code. If StartDate 8 6 93 Dann wird MAVgs Null Exit Function 8 6 93 durch das früheste Datum der Daten in deiner Tabelle ersetzt. Sie verlassen gerade die Funktion if Das Datum passt nicht zu den Kriterien, die ich nicht kenne, wenn man so etwas in den Aliase-Code einbringen könnte, der von dhookem zur Verfügung gestellt wird. Ich mag es nicht, diese Art zu behandeln, und ich vermute, dass dhookem eine viel elegantere Lösung für meine Zwecke bietet Das Problem, das du beschreibst, ist kein Anliegen, aber ich werde daran interessiert sein, irgendwelche Lösungen zu sehen. RE Moving Average Calculation. dhookom Programmer 6 Jul 10 17 05.Sie könnten versuchen, IIf zu versuchen, für eine Anzahl der Datensätze Achtung ungetestet Notizblock Code folgt. SELECT IIF SELECT Zählrate FROM Table1 C WO UND ZWISCHEN - 14 UND SELECT Avg Rate FROM Tabelle1 B WO UND ZWISCHEN - 14 UND AS Expr1 VON Table1 AS A. RE Moving Average Calculation.
No comments:
Post a Comment