Office: (Office 2016) Hilfe bei Sub Abfragen

Helfe beim Thema Hilfe bei Sub Abfragen in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Hallo, ich benötige Hilfe bei 2 Sub Abfrage. Was möchte ich ausgeben? Den Coinname, Coin Kürzel, die aktuell verfügbaren Anteile (Abbuchungen... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von Horst14, 26. Mai 2020.

  1. Hilfe bei Sub Abfragen


    Hallo, ich benötige Hilfe bei 2 Sub Abfrage.
    Was möchte ich ausgeben? Den Coinname, Coin Kürzel, die aktuell verfügbaren Anteile (Abbuchungen beachten), den zuletzt eingetragenen Kurs des jeweiligen Coins und Anschließend was er aktuell insgesamt Wert ist. Also Coin Anteile * Aktuellen Kurs = Summe.

    Mit der untenstehenden Abfrage erhalte ich aber nicht das richtige Ergebnis.

    Abfrage 1
    Code:
    Abfrage 2
    Bei dieser Abfrage, soll er ebenfalls mit dem zuletzt eingetragenen Kurs des jeweiligen Coins rechnen.

    Code:
     
    Horst14, 26. Mai 2020
    #1
  2. Für mich ist es regelmäßig hilfreich, zu schauen, wo in welchen Tabellen die benötigten Angaben stehen, um dann nur genau diese zu verwenden. Dies in Unterscheidung dazu, erst einmal alle (verfügbaren) Tabellen in den Abfrageentwurf zu ziehen und damit zu verknüpfen und damit Daten zu vervielfältigen, um dabei auch gleich Probleme mit zur Lösung unbrauchbaren Feldern zu bekommen (Gruppierung über Riesen-Feldlisten u.a.).

    1) Coinname, Coin Kürzel ... das ist klar, wo die stehen.

    2) den zuletzt eingetragenen Kurs des jeweiligen Coins ... lässt sich aus genau einer Tabelle ermitteln. Diese Ermittlung würde ich vornehmen, bevor ich diese Tabelle mit weiteren Tabellen verknüpfe.

    3) die aktuell verfügbaren Anteile ... hier ist mir nicht ganz offensichtlich, wie dies ermittelt wird. Einfach die Summe der Anteile in der Transaktionentabelle?
    (Abbuchungen beachten) ... wie werden die wirksam (Beschreibung für einen Unwissenden)?

    Die drei Teilaufgaben sollten sich lösen lassen. Dann kann man an das Verknüpfen denken, müsste selbstredend in den Teillösungen die benötigten Schlüssel mitführen.

    Was dabei sichtbar ist: Transarten und Wallets sind da unbeteiligt und müssen überhaupt nicht vorkommen.
     
    ebs17, 28. Mai 2020
    #2
  3. Hallo ebs17 und danke für deine Antwort.

    Die Abfrage 1:
    Ausgabe coin Name, kürzel, anteile, Kurs, Summe

    habe ich bin bekommen.

    Die 2. Abfrage jedoch nicht.

    Geteielt sieht es wie folgt aus:

    Abf. letzter Kurs eintrag

    Code:
    gesamte Abf. der Gewinne er nimmt aber nicht den Max Kurs wert

    Code:
     
    Horst14, 29. Mai 2020
    #3
  4. Hilfe bei Sub Abfragen

    Pauschal: Die obere Abfrage müsste um die nötigen Schlüssel ergänzt werden, damit sie mit weiteren Tabellen verknüpft werden kann.
    Integrieren hieße dann, Unterabfrage statt der tbl_coins_kurse oder zusätzlich, das überschaue ich jetzt nicht.

    Einige generelle Anmerkungen: Nachfolgend Deine originale Abfrage unverändert:
    Code:
    - Vielleicht fällt auf: Wenn man die Anweisung etwas formatiert, kommt man erst einmal in die Richtung, die Anweisung lesen zu können, um sie am Ende gar verstehen zu können. Das ist dann hilfreich, wenn man zielgerichtet ändern möchte.

    - Zur besseren Lesbarkeit würde ich Tabellenaliase verwenden. Solche Tabellenbezeichner gehören auch an die Felder in den Berechnungsausdrücken. Das "Einsparen" ist ein Murks des Abfrageeditors, der dann von den Gläubigen kritiklos übernommen wird.
    Wenn ich eine Berechnung verstehen will, ist es aber nicht hilfreich, erst nachdenken zu müssen, wo denn das Feld herkommt.

    - Der HAVING-Teil ist Murks des Abfrageeditors und müsste eigentlich als WHERE-Teil geführt werden. Filtern vor dem Gruppieren oder nach dem Gruppieren würde einen großen Unterschied machen.
    Grundlagen - SQL ist leicht (11) - Reihenfolge der Abfrageabarbeitung


    - Bei einer derart langen Feldliste im Gruppieren-Abschnitt tippe ich regelmäßig auf Ungeschicklichkeit bis Fehler. Feldinhalte vervielfältigen (per JOIN) und danach wieder vereinzeln (GROUP BY) ist wie zwei Schritte vor und zwei zurück. Wenn es auch nichts bringt, so braucht das doch Zeit, zumal man das Thema Indexnutzung bei solchen Auswüchsen sicher zusätzlich ganz vergessen kann.

    - Wie oben formuliert würde ich das Anliegen in Teilaufgaben zerlegen und diese lösen, also quasi Deinen Thementitel (Unterabfragen) als Weg benutzen.
     
    ebs17, 30. Mai 2020
    #4
  5. Danke für deine Unterstützung.

    Ich habe es berücksichtigt und die Abfragen weitesgehend angepasst.
    Die GroupBy klausel mit where zu ersetzen ist mir jedoch nicht gelungen.

    Code:
    Code:
    Hier erscheint ein Syntax fehler, da ich glaube im FROM Teil einen Fehler habe :-(. Wie muss dieser korrekt aussehen?
     
    Horst14, 1. Juni 2020
    #5
  6. Code:
    Ja, da gibt es Fehler in der Syntax:
    - Die Unterabfrage ist mit einer schließenden Klammer abzuschließen.
    - Die Unterabfrage benötigt einen eigenen Namen (Alias).
    - Die Tabellen sind per Komma (ergibt CROSS JOIN) oder JOIN-Bedingung zu verknüpfen.
     
    ebs17, 1. Juni 2020
    #6
  7. CK steht für tbl_coin_kurse. Oder warum die Fragezeichen?

    Die schließende Klammer habe hatte ich nur an der Falschen stelle. Sie war nach dem ersten GROUP BY :-(

    Ich habe die Abfrage jetzt ergänzt und die Klammer richtig gesetzt und auch ein Alias vergeben. Ich habe Sie UA für Unterabfrage geannt. Sowie ein Inner Join hinzugefügt. Aber er sagt, die Synthax ist falsch. Und Markiert die GROUP BY Klausel
    Code:
    Code:
     
    Horst14, 1. Juni 2020
    #7
  8. Hilfe bei Sub Abfragen

    Damit ich etwas zum farbig markieren hatte. Den Text dazu hattest Du gelesen und verstanden?

    Es fehlt aber noch die Bedingung zum JOIN, also so etwas wie
    Code:
    In Deiner Unterabfrage kommt so etwas vor. Man könnte also sinngemäß abschreiben oder sich gleich mit grundlegender Syntax beschäftigen.
     
    ebs17, 1. Juni 2020
    #8
  9. Wenn du damit die INNER JOIN geschuchte meinst, ja die habe ich gelesen.
    Verstanden nunja nicht ganz...
    Da ich mich generell mit Sub Abfragen schwer tuh habe ich auch diesen Post verfasst.
    Von dir habe ich nun schon viele Positive hilfestellungen bekommen...

    Ich muss ja quasi die Abfrag 1 mit der inneren Abfrage verbinden...
    Somit muss es CK.fk_coin_ID heißen und bei der inneren Abfrage
    müsste ich doch dann tbl_coins_wallets.coinID nehmen oder?
    Ist das nicht syntax mäßig richtig?
    So habe ich das hier rausgelsen https://www.ms-office-forum.net/foru...d.php?t=298432

    Also folgendes geht syntax mäßig nicht aber ich komme nicht auf die Lösung (Bei tbl_coins_wallets habe ich den Alias CW vergessen)
    AS UA ON CK.coin_ID = tbl_coins_wallets.coinID
     
    Horst14, 1. Juni 2020
    #9
  10. Vorab: Ich rede hier nur von technischen Maßnahmen. Ob das Konstrukt dann richtige Ergebnisse im Sinne der vorhandenen Daten und richtige Ergebnisse im Sinne der Erwartung bringen wird, kann ich nicht beurteilen. Da müsste ich einiges mehr an Zeit investieren, vermutlich deutlich mehr Zeit, als die Abfrage selber mit eigener Logik neu aufzubauen.

    Da wirst Du beileibe nicht alleine stehen. In Mengenverarbeitung statt in Einzelschritten in Folge zu denken muss man sich erst einmal erschließen, weil das in der üblichen Gewohnheit weniger vorkommt.

    Unterabfragen für den FROM-Teil kann man ja als eigenständige gespeicherte Abfragen anlegen und dann diese als Objekte an sich im Abfrageeditor verwenden. Der Abfrageeditor wird dann meist für eine funktionierende Syntax bei der Einbindung sorgen. Dass man die Unterabfrage als SQL-Text in der aufbauenden Abfrage sehen kann, ist ja schon eher ein zusätzlicher "Luxus".

    Die Fragestellung kann ich nicht vollständig durchdringen und gar mit ja/nein beantworten.

    Verbinden? Die Abfrage1(?) verwendet die Abfrage UA als Datenherkunft. CK in den Tiefen ist unrelevant. Also kann sie sich nur auf Felder dieser Abfrage beziehen, also auf das, was dort in der obersten Ebene im SELECT-Teil steht. Dort gibt es weder die Felder fk_coin_ID noch kurs, aber eine Vielzahl von Feldern, die nicht benutzt werden, also im Sinne der Aufgabenstellung dann überflüssig sind.
    Da passt also einiges nicht zusammen.
    tbl_coins_kurse_akt__ ... wenn ich raten oder interpretieren soll, ist ein Nachdenken über Lösen absurd.

    Ich möchte jetzt auch nicht jeden Versuch oder Handschlag kommentieren.
    Bei Interesse könntest Du eine Demo einstellen mit einigen repräsentativen Daten (Datenmodell und korrekte Tabellendefinitionen enthalten) und einer Beschreibung, was genau das Ergebnis sein soll (Ergebnisansicht ermittelt aus genau den bereitgestellten Daten).

    Eine ggf. gefundene Lösung kannst Du dann für Dich analysieren im Sinne von Technik und Vorgehenslogik, um dann auch zu verstehen und später sinngemäß abschreiben zu können, dann aus eigenen und verstandenen Beispielen.
     
    ebs17, 1. Juni 2020
    #10
  11. Hallo,
    anbei befindet sich jetzt meine Beispieldatenbank.
    abf_gewinne funktioniert aktuell.
    Bei dieser Abfrage arbeite ich jedoch mit der Tabelle tbl_coins_kurse_akt__ in der ich die Preise Manuel eingegeben habe.
    Diese Benötige ich eigentlich nicht, da ich wenn ich einen Coin kaufe oder regelmäßig die Preise aktualisiere (im Formular frm_coinanzeigen) die Werte in der Tabelle tbl_coins_kurse eintrage (mit Zeitstempel).
    Aus diesem Grunde möchte ich nicht mit der temporär angelegten Tabelle tbl_coins_kurse_akt___ arbeiten sondern mit der bereits vorhanden Tabelle.
    Für die neue Abfrage habe ich die
    abf_1_max_kurs abfragen
    abf_2_gewinn_maxkurs_fehlt

    Bereits vorbereitet. Hier würde dann noch die Berechnung des Gewinns hinzukommen.
    Gewinnberechnung: IIf([verkaufspreis]=0,([Maxvonkurs]-([Kurs]))*[anteil]-[gebuehren],0) AS gewinn

    Ich danke dir für deine Unterstützung.
     
    Horst14, 2. Juni 2020
    #11
  12. Folgender Vorschlag, der sich wie durch Wunder ganz eng an den Thementitel anlehnt:

    qry_coins_kurse:
    Code:
    Diese Abfrage bindest Du an Stelle der tbl_coins_kurse in Deine Abfrage ein. Sie bietet das zusätzliche Feld aktuellkurs. Das Feld kurs habe ich in aktionkurs umbenannt (Aktion für Kauf, Umschichtung usw.).

    Damit hast Du beide Kurse in einer Zeile und kannst mit Anteilszahl multiplizieren und Deine Rechnungen nach Belieben ausführen.
     
    ebs17, 3. Juni 2020
    #12
  13. Hilfe bei Sub Abfragen

    Hi,
    danke für deine Hilfe die Abfrage funktioniert und ich bekomme das gewünschte Ergebnis angezeigt.

    Dies ist quasi der Code um die Abfrage mit der Sub zu verbinden?
    mmmm wenn ich den Code sehe verstehe ich das nur selbst drauf kommen ist so eine sache... was so ein kleiner Fehler auslösen kann...
    Code:
    Vielen Dank.
     
    Horst14, 4. Juni 2020
    #13
  14. Ja.
    Die Unterabfrage befindet sich hier im SELECT-Teil der übergeordneten Abfrage. Sie darf daher nur genau einen Wert liefern, weil ja ein Feld eines Datensatzes nur einen Inhalt aufnehmen kann.
    Die gezeigte Verknüpfung zwischen Unterabfrage und Abfrage stellt eine Korrelation dar und führt praktisch dazu, dass die Unterabfrage pro Datensatz der Hauptabfrage ausgeführt wird.
     
    ebs17, 4. Juni 2020
    #14
Thema:

Hilfe bei Sub Abfragen

Die Seite wird geladen...
  1. Hilfe bei Sub Abfragen - Similar Threads - Hilfe Sub Abfragen

  2. Hilfe bei "Zählenwenns"

    in Microsoft Excel Hilfe
    Hilfe bei "Zählenwenns": Liebe Experten! Bis jetzt hab ich durch durchforsten des Forums immer Hilfe gefunden. Diesmal leider nicht! Mein Problem: Ich habe einen Planer übernommen und ihn auf "dynamisch" umgestellt. Das...
  3. Hilfe Excel Formel

    in Microsoft Excel Hilfe
    Hilfe Excel Formel: Hallo, was muss ich bei der Formel verändern, um ein Ergebnis zu erhalten? Möchte in Zelle R7 wenn z.B. Feiertag steht, dass die Sollarbeitszeit berechnet wird und wenn in den Zellen M7-Q7 Zeiten...
  4. Benötige Hilfe bei SQL-Befehl

    in Microsoft Access Hilfe
    Benötige Hilfe bei SQL-Befehl: Hallo zusammen und alles Gute für 2025 Es ist mal wieder Sale-Zeit und jetzt müssen bei vielen Artikel zu eine festgesetzten Zeit die VK-Preise geändert werden. Man kann das in unserem...
  5. Hilfe bei der Diagrammerstellung in Excel

    in Microsoft Excel Hilfe
    Hilfe bei der Diagrammerstellung in Excel: Hallo miteinander, ich habe Messdaten einer Temperaturüberwachung, mit denen ich gerade ein wenig spiele und Einstellungen teste. Dazu habe ich mir ein Excel-Blatt gebaut, auf dem ich alle...
  6. Bitte um Hilfe für unsichtbares inhaltsverzeichnis

    in Microsoft Word Hilfe
    Bitte um Hilfe für unsichtbares inhaltsverzeichnis: Hi, vielen Dank schon mal im Voraus an alle, die sich die Zeit nehmen, mir bei meinem Problem zu helfen! Folgendes Problem habe ich: Ich möchte ein Inhaltsverzeichnis zum Navigieren im Dokument...
  7. Hilfe bei Zählen in Liste

    in Microsoft Excel Hilfe
    Hilfe bei Zählen in Liste: Hallo liebes Forum, ich bin auf der Suche nach einer Lösung, in dem beigefügten File die Anzahl zu ermitteln. Es geht um Blechzuschnitte, die unterschiedliche Grössen haben. Die "Gesamt Liste"...
  8. Hilfe gesucht bei Fertigstellung einer Formel

    in Microsoft Excel Hilfe
    Hilfe gesucht bei Fertigstellung einer Formel: Ich habe einen Stundenzettel erstellt und stehe gerade vor einem kleinen Problem mit meiner Excelformel. Es geht um 3 Spalten im Stundenzettel. Ich habe für die automatische Berechnung des...
  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