Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Berechnung ab letztem Datum wo Wert >X (Transaktionstabelle)

Begonnen von FLUE, Januar 28, 2023, 08:07:19

⏪ vorheriges - nächstes ⏩

FLUE

Hallo zusammen

Für folgende Problematik komme ich auf keine gescheite Lösung, resp konnte nichts finden: Nun mein 1. Eintrag  :-[
Ich habe eine Transaktionstabelle mit n Produkten welche mit Käufen/Verkäufen befüllt wird.

Nun benötigt es Auswertungen.
- Summe der Stückzahl und Wert von Produkt A ab dem Zeitpunkt wo die Stückzahl zum letzten Mal 0 war.
Anhand Beispiel:
Produkt (A), Stück (210), Wert (1720)
Produkt (B), Stück (12), Wert (47)

- Summe des Wert von Produkt A von der ersten Transaktion bis zum letzten Zeitpunkt als die Stückzahl 0 war.
Anhand Beispiel:
Produkt (A), Wert (-100)
Produkt (B), Wert (-11)

Ich bin da wirklich zu doof um das auszuwerten. Oder brauchts da VB?

Tabelle: tab
Felder: ID, Produkt, Stück, Datum, Wert

Beispiel: [Kauf + Verkauf]
ID(0), Produkt (A), Stück (100), 01.01.2023, Wert (1000)
ID(1), Produkt (A), Stück (50), 02.01.2023, Wert (400)
ID(2), Produkt (B), Stück (10), 03.01.2023, Wert (33)
ID(3), Produkt (A), Stück (-150), 03.01.2023, Wert (-1700)
ID(4), Produkt (A), Stück (75), 04.01.2023, Wert (500)
ID(5), Produkt (B), Stück (-10), 05.01.2023, Wert (-44)
ID(6), Produkt (A), Stück (-75), 06.01.2023, Wert (-300)
ID(7), Produkt (A), Stück (200), 07.01.2023, Wert (1600)
ID('8'), Produkt (B), Stück (7), 08.01.2023, Wert (22)
ID(9), Produkt (A), Stück (10), 09.01.2023, Wert (120)
ID(10),Produkt (B), Stück (5), 10.01.2023, Wert (25)

P.s. Das Feld 'Wert' wird aus dem Datensatz berechnet. (Währungskurs*Kaufpreis*Stück)

Ich hoffe ihr könnt mich auf den richtigen Weg bringen  ;)
Herzlichen Dank schonmal im Voraus!

Gruss
flue

ebs17

ZitatOder brauchts da VB?
VBA ist der Ausweg, wenn man keine Abfrage mehr zusammenbekommt. Manche suchen früh den Ausweg, manche später.

Bei Abfragen macht man sich bewusst, dass man es mit Mengen und Mengenverarbeitung zu tun hat => alles auf einmal.
Grundlagen - SQL ist leicht (0) - Vorspiel

Zeitpunkt wo die Stückzahl zum letzten Mal 0 war
SELECT
   Produkt,
   MAX(Datum) AS MD
FROM
   tab
WHERE
   Stück = 0
GROUP BY
   Produkt
SELECT
   T.Produkt,
   T.Stück
FROM
   tab AS T
      LEFT JOIN
         (
            SELECT
               Produkt,
               MAX(Datum) AS MD
            FROM
               tab
            WHERE
               Stück = 0
            GROUP BY
               Produkt
         ) AS S0
         ON T.Produkt = S0.Produkt
            AND
         T.Datum >= S0.MD
Das kann nun summiert werden. Die Herkunft von Wert (Währungskurs) ist nicht so richtig klar.

Zitatvon der ersten Transaktion bis zum letzten Zeitpunkt als die Stückzahl 0 war
Das ist für mich interpretierbar und also nicht präzise genug formuliert. Aber Erster und Letzter kannst Du von obigem Ansatz ableiten.

Mit freundlichem Glück Auf!

Eberhard