Friday, 14 April 2017

Berechnen Moving Average In Access 2007


Wie schreibe ich eine Abfrage in MS Access 2007, die sowohl die Zählung und den Prozentsatz der gesamten Datensätze in einer Tabelle für jede Zeile in einem bestimmten Feld zeigt, zum Beispiel, wenn meine Tabelle ein Feld namens Gender hat, was ist die Abfrage sollte ich Um die Zeilenzahl und den Prozentsatz von Männern und die Zeilenzahl und den Prozentsatz von Frauen zu sehen. Wenn die Tabelle 1000 Datensätze hatte, würde das Ergebnis etwa so aussehen: Ich kann problemlos eine Abfrage schreiben, die mir nur die Zeilenzahl gibt, aber ich Cant herauszufinden, wie man auch die Prozentwerte. Ich sollte erwähnen, dass ich nicht wissen, SQL. Ich verwende die Design-Ansicht beim Anlegen von Abfragen. Aber wenn Sie mir den Text für die Abfrage in SQL geben kann, kann ich kopieren und fügen Sie ihn in eine neue Abfrage und dann speichern. Das ist nicht Teil von SQL selbst, aber Sie können eine VBA-Funktion in einer Abfrage verwenden, um die Menge der Datensätze in einer Tabelle zu zählen: DCount (MSDN). Kopieren und fügen Sie die folgenden Zeilen in den Abfrage-Designer (obere Zeile, eine Zeile pro Spalte): Sie können dann den Prozentsatz, indem Sie einige einfache Mathematik auf die Rückgabewerte (wieder eine Zeile pro Spalte): Dont vergessen, um das Format auf Prozentsatz oder die Werte erscheinen als 0,6 und 0,4 statt 60 und 40. By the way, gibt es wahrscheinlich mehr konsistent Möglichkeiten, es zu tun. Ich versuchte es lesbar zu machen. PS: vergessen Sie nicht, die Namen der Tabellen und fields. New Daten hinzugefügt wird, um die Tabelle täglich von Montag bis Freitag, basierend auf den Börsenkurs Änderungen für diesen Tag. Die aktuelle Anforderung beruht auf dem VOLUME-Feld, das das für eine bestimmte Aktie täglich gehandelte Volumen anzeigt. VORAUSSETZUNG Um das Durchschnitts - und Gesamtvolumen für die letzten 10,15 bzw. 30 Tage zu erhalten. METHODE verwendet CURRENTLY - Ich schuf diese 9 SEPARATE QUERIES, 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. 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 im Schnappschuss des Excel Sheet gezeigt. LÖSUNG BENÖTIGT - Gibt es eine Möglichkeit, mit der ich diese erforderlichen Felder in ONE SINGLE QUERY zu bekommen, so dass ich nicht haben, um in mehrere Orte für die erforderlichen Felder aussehen Kann mir bitte jemand sagen, wie man all diese separaten Abfragen in einem - A) Entweder durch Herausnehmen oder Verschieben der Ergebnisse aus diesen separaten Einzelabfragen zu einem. B) Oder indem Sie eine neue Abfrage erstellen, die alle diese Felder in sich berechnet, sodass diese einzelnen Einzelabfragen nicht mehr benötigt werden. Das wäre eine bessere Lösung, denke ich. Eine Klärung über Daten Einige 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 nicht ich habe gerade den PC Datum für das Erhalten dieser Werte oder verwendet 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 lesen TIMESTAMP Field, und führen Sie dann seine Berechnungen entsprechend für LETZTE MOST RECENT 10 Tage, 15 Tage, 30 Tage, für die die Daten verfügbar ist in der Tabelle, OHNE BOTHERING, was das aktuelle Datum ist. Es sollte nicht auf das aktuelle Datum in irgendeiner Weise ab. Wenn es eine bessere Methode oder effizientere Möglichkeit, diese Abfragen 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 beide in einer Abfrage, qry10DayVolumes berechnen. Allerdings ist das frage mich, ob 10DayAvgVolume kann immer etwas anderes als 10DayTotalVolume 10 Ähnliche Überlegungen gelten für die 15 und 30 Tage Werte. Letztendlich glaube ich, dass Sie etwas wollen, das auf einem Ausgangspunkt wie folgt basiert: Das geht davon aus, dass Sie qry15DayVolumes und qry30DayVolumes erstellt haben, nach dem Ansatz, den ich für qry10DayVolumes vorgeschlagen habe. Wenn Sie die Anzahl der Abfragen reduzieren möchten, können Sie Unterabfragen für jede der gespeicherten QryDayVolumes-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 durch Feldnamen geben, die mit Ziffern beginnen. Schließen Sie diese Namen in eckige Klammern oder re-alias sie in qry10DayVolumes. Qry15DayVolumes. Und qry30DayVolumes unter Verwendung von Aliasnamen, die mit Buchstaben anstelle von Ziffern beginnen. Ich testete die Abfrage wie oben geschrieben mit der 2. Upload. mdb Sie hochgeladen, und es lief ohne Fehler von Access 2007. Hier ist die erste Zeile der Ergebnismenge aus dieser Abfrage: beantwortet Okt 24 12 at 19: 20Avg Funktion Berechnet die Arithmetik Mittelwert einer Menge von Werten, die in einem bestimmten Feld in einer Abfrage enthalten sind. Der expr-Platzhalter repräsentiert einen Zeichenfolgenausdruck, der das Feld identifiziert, das die numerischen Daten enthält, die Sie durchschnittlich möchten, oder einen Ausdruck, der eine Berechnung unter Verwendung der Daten in diesem Feld ausführt. Operanden in expr können den Namen eines Tabellenfeldes, eine Konstante oder eine Funktion enthalten (die entweder intrinsisch oder benutzerdefiniert sein kann, aber nicht eine der anderen SQL-Aggregatfunktionen). Der durch Avg berechnete Durchschnitt ist das arithmetische Mittel (die Summe der Werte dividiert durch die Anzahl der Werte). Sie können die Verwendung von Avg. Um beispielsweise die durchschnittlichen Frachtkosten zu berechnen. Die Avg-Funktion enthält keine Null-Felder in der Berechnung. Sie können Avg in einem Abfrageausdruck und in der SQL-Eigenschaft eines QueryDef-Objekts oder beim Erstellen eines Recordset-Objekts basierend auf einer SQL-Abfrage verwenden.

No comments:

Post a Comment