Office: (Office 2010) Abfrage mit berechnung

Helfe beim Thema Abfrage mit berechnung in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Hallo, ich bin aktuell dabei eine Abfrage zu bauen, um herauszufinden wieviel Gewinn oder auch Verlust ich bei einem kauf gemacht habe. Mit der... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von Horst14, 9. Oktober 2019.

  1. Abfrage mit berechnung


    Hallo,
    ich bin aktuell dabei eine Abfrage zu bauen, um herauszufinden wieviel Gewinn oder auch Verlust ich bei einem kauf gemacht habe.
    Mit der folgenden Abfrage (Anhang) gebe ich mir den Einkaufspreis aus, die Anteile die gekauft wurden das Datum und was es für einen Coin betrifft.

    Jetzt möchte ich aber den zuletzt eingetragenen Kurs des jeweils coins anzeigen lassen und anschließend soll er mir berechnen, was ich aktuell für einen Gewinn/Verlust gemacht habe. Ich weiß aber nicht wie ich dies umgesetzt bekomme.
    Kann mir dabei jemand helfen?

    d.h wenn ich 3mal BTC gekauft habe muss er mir das bei allen 3 Datensätzen mit dem zuletzt eingetragenen Kurs Multiplizieren.

    Ich hoffe ihr wisst wie ich das meine.
    Wie kann ich das umsetzen?

    Ich danke euch für eure Hilfe

    :)
     
    Horst14, 9. Oktober 2019
    #1
  2. Hallo Horst,
    Code:
    Wobei ich nach deinen Beschreibungen in früheren Threads eher mit einem
    manuell eingegebenen aktuellen Kurs rechnen würde.
    gruss ekkehard

    P.S.: DB habe ich mir nicht angeschaut.
     
    Beaker s.a., 11. Oktober 2019
    #2
  3. Danke für deine Antwort.
    Ja es ist gedacht, dass ich den Kurs Preis eingebe (frm_coin von dir erstellt) da gebe ich die coin Kurse jeweils ein. Und in einem weiteren Formular möchte ich eine Art Auswertung / Statistik machen.

    Jetzt war mein Gedanke ein Formular zu erstellen, wo ich ablesen kann wie meine Gewinne stehen.
    Ich glaube die frage hatte ich am Anfang nicht ganz richtig erklärt.

    z.b
    gekauft, anteil, Kosten, beim kurs von, aktueller kurs, gewinn
    BTC 1, 9500€ 9500€ 10500 1000€
    BTC 0,5, 4000€ 8000€ 10500€ 1250€
    LTC 1, 50€ 50€ 25€ -25€
    LTC 5, 450€ 90€ 25€ - 325€
    .....

    So eine Tabelle veruche ich darzustellen. Um zum schluss zu sagen, ich habe mit BTC 2250€ Plus gemacht und mit LTC 350 Minus aber im gesamten habe ich 1900€ Plus.

    Weißt du was ich meine?
     
    Horst14, 11. Oktober 2019
    #3
  4. Abfrage mit berechnung

    Hallo Horst,
    Habe mal wieder keine Zeit das für dich zu machen. Versuche es mit dieser
    Anleitung.
    Du brauchst eine Tabelle mit den aktuellen Kursen, - in der tbl_coins_kurse
    steht ja nur der letzte Kurs. Wenn der dir reicht kannst du natürlich diese Tabelle
    verwenden. In einer Abfrage führst du diese Tabelle und die tbl_transaktionen
    über die coin_ID zusammen, gefiltert über die Transaktionsart 1.
    Das Feld "beim Kurs von" brauchst du nicht für die Ertragsberechnung, - die Kosten
    (coin_preis + gebuehren) reichen dafür. Der Ertrag errechnet sich dann aus
    [aktuellem Kurs] * anteil - coin_preis - gebuehren
    Mit dieser Abfrage fütterst du einen Bericht, auf/mit dem du dann nach den
    einzelnen Coins gruppieren und summieren kannst.
    gruss ekkehard
     
    Beaker s.a., 12. Oktober 2019
    #4
  5. Hallo ekkehard,
    danke für deine Antwort. Ich weiß nicht ob ich zu kompliziert gedacht habe.... Ich werde es heute Abend testen und schauen ob ich die Abfrage erstellt bekomme.
    Vielen Dank
    Horst
     
    Horst14, 14. Oktober 2019
    #5
  6. Ich habe mich an der Abfrage versucht... aber ich komme nicht weiter... es sieht so ähnlich aus wie ich es vorher hatte...

    Die Abfrage lautet:
    Und sie gibt mir beim Kurs unterschiedliche kurse aus. der zuletzt eingetragene Coin Kurs ist der vom 04.10.2019. 22:26.34 aber der ist wohl mit der Transaktionsart 3 verbunden. Er sollte aber diesen eintrag für alle einträge mit er Transaktionsart 3 darstellen. das macht er leider nicht.

    Mit der Abfrage:
    Bekomme ich zwar den richtigen Preis angezeigt aber diesen Preis schaffe ich nicht in die erste Abfrage zu integrieren.
    Ich schaffe es auch nicht eine Su Select abfrage zu erstellen, so das er mir bei dem Coin immer nur den letzten Kurs anzeigt, den von dem muss ja immer ausgegangen werden. Vielleicht kann jemand drüber schauen und mir nochmal den richitgen Tipp geben.

    Ich danke euch.
     
    Horst14, 14. Oktober 2019
    #6
  7. Ein Tipp wäre: Erst rechnen, dann verknüpfen. Nativ machen es die meisten anders herum. Erst werden alle möglichen Tabellen in den Abfragebereich gezogen, die Verknüpfungen liegen dann durch Accessautomatik nachgeahmt aus den Beziehungen schon vor. Aus diesem Gebilde wird dann versucht, etwas Gewünschtes herauszuarbeiten. Das gelingt bei einfacheren Anforderungen und wird regelmäßig scheitern bei höheren Anforderungen.

    Mit diesem Wunsch bist Du auf dem richtigen Weg.

    Rechnen:
    Code:
    Damit hast Du als elementare Information pro Coin das höchste Datum.
    Jetzt brauchst Du aber noch den zugehörigen Kurs wie auch wahrscheinlich weitere Datensatzbestandteile wie die ID zum weiteren Verknüpfen.
    => Verknüpfung mit sich selber
    Code:
    Damit hast Du nun die reduzierte Tabelle (z.B. in Form einer gespeicherten Abfrage), die jetzt mit weiteren Tabellen verknüpft und der weiteren Verarbeitung zugeführt werden kann.
     
  8. Abfrage mit berechnung

    Hallo,
    danke für deine Antwort. Ja genau so klappt es mit der Sub Select Abfrage.

    Ich danke euch für eure Unterstützung.
     
    Horst14, 16. Oktober 2019
    #8
  9. Ich bekomme es einfach irgendwie nicht hin :-(
    Ich möchte eine Abfrage erstellen, die nur die Coins ausgibt und auch zusammen rechnet die ich aktuell noch besitze also alle coins die ich wieder verkauft habe sollen nicht angezeigt werden, da ich diese schließlich nicht mehr habe.
    Ich möchte wissen was meine Coins laut dem aktuellen kurs wert Sind.

    Ich wollte es mit folgender Abfrage realisieren. Aber ich bekomme einen Syntaxfehler es würde wohl ein Operator fehlen und ich komme nicht drauf :-(.

    Code:
    Was für ein Operator benötigt er?
     
    Horst14, 25. Oktober 2019
    #9
  10. Bei den JOIN's fehlen noch Klammern, Jet-SQL mag es da sehr ausführlich.
    Wo genau welche hingehören, überschaue ich nicht.
    Baue die Abfrage schrittweise über den Abfrageeditor zusammen, da werden die Klammern funktionierend gesetzt.

    Alternativ müsste man das Beziehungsbild vor Augen haben und daraus Verbindungslogik und Reihenfolge ableiten, um die Anweisung per Hand zu schreiben.
     
  11. Hi ebs17,

    ich schaffe es irgendwie nicht aus den beiden abfragen eine zu zaubern...

    Abf. 1
    Code:
    Abf.2
    Code:
    Einzeln funktionieren beide Abfragen super aber eben nicht zusammen.

    Ich hoffe mir kann einer helfen :-).
     
  12. Abfrage mit berechnung

    Danke für den Link zu deinem Tutorial.

    Ich habe es aber so wie du es da beschrieben hast eigentlich schon versucht.

    Abfrage1
    Code:
    Abfrage2
    Code:
    Zusammengestellt:

    Code:
    Fehlermeldung:
    Ich habe hinter meinem FROM Innerjoin
    Code:
    stehen, dass steht bei dir nicht aber ich bin auf diese Tabellen angewiesen.
    Liegt darin mein Fehler?
     
  13. Vorab: Mit Deinen Tabellen zu arbeiten ist äußerst anstrengend. Durch die Vergabe von Feldbeschriftungen steht da immer etwas anderes als der richtige Feldname. Ich bin es gewöhnt und habe es auch noch nie anders gesehen, dass ich mit einem Feldnamen, den mir die Abfrage anzeigt, unmittelbar weiterarbeiten kann. Das unterstützt fortgesetztes Arbeiten.

    Bezüglich gewünschter Umbenennung: Da gibt es zum einen Spaltenaliase. Die machen das direkt in der Abfrage, und dann versteht man das auch ohne Nachschlagen an anderer Stelle. Zum anderen wird man in einer richtigen Anwendung die Abfrageergebnisse in Formularen anzeigen und kann dann dort Bezeichnungen über die anzeigenden Steuerelemente steuern. Daher dürfen Abfragefeldnamen "kryptisch" bleiben.
    Auch muss man den Bezeichnungskonventionen, die manche Buchautoren und deren Jünger vorgeben, nicht immer folgen. Wenn man Abfragen komplexewr erstellt (was jene meist nicht kennen), dann verschwindet die prognostizierte Übersicht. Und wenn man dort Abfrageergebnisse in der Datenblattansicht anschaut, dann kann man oft wegen der ellenlangen Präfix-Ketten in den Standardspaltenbreiten nicht erkennen, wie denn nun der Name des Feldes ist. Wieder müsste man extra arbeiten und Spaltenbreiten nur wegen der Lesbarkeit verbreitern - bei nur Zwischenergebnissen sinnlos, manchmal wegen der zu überschauenden Spaltenanzahl dann auch wieder ungünstig.
    Auf deutsch: Man kann auch unmittelbar brauchbare Feldnamen benutzen, wenn man es nachvollziehen kann und das auch Dritte können.

    So, jetzt etwas Technik, und Du wirst merken, schwer ist das nicht.

    1) Abfrage 1 habe ich als QA abgespeichert (A so für Anteile). Mit der Kurzbezeichnung empfinde ich den späteren Tabellenalias vor. Der darf schön kurz sein, weil er ja nie nach außen auftritt und nur der eigenen Lesbarkeit dienen soll.

    2) In Abfrage 2 habe ich den Fremdschlüssel durch C.coin_ID ausgetauscht, einfach deswegen, weil dieser PK zur Verknüpfung zu QA benötigt wird
    (Beziehung Coins zu Coinskurse). Der Fremdschlüssel dagegen erscheint nutzlos. Diese Abfrage als QS abgespeichert.

    3) Diese Abfragen kann man im Abfrageeditor zu einer neuen Abfrage zusammensetzen. Sieht dann so aus:
    Code:
    Das könnte man jetzt so lassen und verwenden.

    Man kann aber auch eine zusammengefasste SQL-Anweisung wegen der Übersicht zusammenstellen. Eine solche ist aber auch hilfreich, wenn man Parameter zum Filtern auch in den Tiefen der Unterabfragen setzen und dann bedienen will.
    Das ist dann schlichtes Kopieren im FROM-Teil:
    QA ==> (SELECT ...) AS QA

    Im Ergebnis (formatiert):
    Code:
    Wenn man sauber arbeitet, funktioniert das genau so gut wie obige Kurzvariante. Es wird ja auch exakt das Gleiche ausgeführt.
    Über Klammern musste man nicht wirklich nachdenken, außer dass natürlich die einzufügenden Unterabfragen in Klammern zu setzen sind.

    Ach ja - die gespeicherten QA und QS können dann entfernt werden bzw. sollten es, sofern man sie nicht explizit an anderer Stelle wiederverwendet. Die waren nur Zwischenschritte.
     
  14. Nachbetrachtung zu Deiner verunglückten Zusammenstellung:
    Code:
    Der rot hervorgehobene JOIN ist ja die Schnittstelle zwischen den Ursprungsabfragen. Da fehlt zum einen die Verknüpfungsbedingung ( ON A.key=B.key ). Zum anderen fehlen dann wie gesagt Klammern, Jet ist da sehr eigenwillig. Jeder einzelne JOIN muss geklammert werden, wenn es über einen hinausgeht. Sprich, wenn eine Tabelle/JOIN hinzukommen, wird das Vorhandene geklammert.
    Prinzip:
    Code:
    Das Ganze in Kombinationen (welche Tabelle mit welcher Tabelle) in Vielzahl und einige eingesetzte Unterabfragen machen es dann schnell unübersichtlich. Wie oben erwähnt, kann da zu einem Verständnis das vorliegende Beziehungsbild helfen. Mit einem Probieren statt zielgerichteten Handeln dürfte man gnadenlos scheitern.

    Sowie: Beziehungen
    Transaktionen-Coins-CoinsKurse

    Kreisverkehr in Beziehungen sehe ich als problematisch an. Das dürfte zusätzliche Überraschungsmomente bereithalten, je nach dem, von welcher Seite man verknüpft oder vielleicht gleich von beiden, um den Kreis zu schließen. Wegen Enthaltsamkeit habe ich da aber keine Erfahrungen und lege auch keinen Wert darauf, solche zu erlangen.

    Ich sag mal so: Manchmal sollte Datenmodellierung auch auf Funktionalität (Abfrageerstellung ob und wie sowie auch auf Abfrageausführung einfach, schnell, direkt) eingehen. Die theoretische Basis sollte Praxis zulassen.
     
Thema:

Abfrage mit berechnung

Die Seite wird geladen...
  1. Abfrage mit berechnung - Similar Threads - Abfrage berechnung

  2. Abfrage eines Feldes mit Berechnung

    in Microsoft Excel Hilfe
    Abfrage eines Feldes mit Berechnung: Moin, ich bin neu im Excel-Programmieren, und habe folgendes Problem nirgendwo gefunden, vielleicht kann mir jemand helfen. Im Feld A1 soll manuell ein Buchstabe eingetragen: z.B.: j / n...
  3. Jubiläum berechnen

    in Microsoft Access Hilfe
    Jubiläum berechnen: Liebe Access Experten, ich bin kompletter Neuling was Access (2019) angeht. Ich verwalte die Mitglieder eines Vereins und möchte nun das Jubiläum berechnen lassen. Folgenden Code habe ich mir...
  4. Abfrage mit Berechnung, kein neuer Datensatz

    in Microsoft Access Hilfe
    Abfrage mit Berechnung, kein neuer Datensatz: hallo, bisher habe ich weder mit google noch hier im Forum eine Lösung gefunden, daher hier nun meine Herausforderung: Zuerst einmal der Aufbau, habe gerade zwei Access-Datenbanken ( eine für...
  5. Access Mittelwert in Abfrage berechnen

    in Microsoft Access Hilfe
    Access Mittelwert in Abfrage berechnen: Hallo zusammen, ich benötige Unterstützung in Access: Ich versuche über einen Abfragegenerator den Mittelwert der vergangenen 6 Monate zu ermitteln. Ich habe je eine Spalte für jeden Monat des...
  6. Summe der Uhrzeit in Abfrage berechnen

    in Microsoft Access Hilfe
    Summe der Uhrzeit in Abfrage berechnen: Hallo zusammen! Ich habe in Excel die Summe verschiedener Uhrzeiten berechnet (Differenzen addiert). Das hat soweit alles ganz gut funktioniert (im 30er Format) Diese Tabelle habe ich nach...
  7. Berechnung in einer Abfrage mit eine Wert aus fremder Tabelle

    in Microsoft Access Hilfe
    Berechnung in einer Abfrage mit eine Wert aus fremder Tabelle: Hallo Forum, ich möchte in einer Abfrage eine automatische Multiplikation durchführen. Dder erste Wert kommt aus der gleichen Tabelle und wird über die Feldfunktion BS1:...
  8. Verschiedene Berechnungen in einer Abfrage

    in Microsoft Access Hilfe
    Verschiedene Berechnungen in einer Abfrage: Moin! Ich möchte in einer Abfrage verschiedene Berechnungen ausführen. Spalte x soll in der neunen Spalte nach verschiedenen Formeln umgerechnet werden. Diese Formeln sollen sich je nach...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden