Hallo,
eine Bewegungstabelle für eine Lagerverwaltung sieht in ihren Grundzügen etwa so aus:
SQL-Code:
CREATE TABLE bewegungen (
ID AUTOINC,
KONTO INTEGER,
PART_ID INTEGER,
MENGE INTEGER,
DATUM DATE,
ZEIT TIME,
PRIMARY KEY(ID)
)
Dein Feld PartGrund entspricht dem KONTO. Du richtest einen Kontenstamm so ein, dass Lagerzugänge auf den Konten 100 bis 199 erfolgen, Abgänge auf den Konten 200 bis 299, Abgänge werden mit negativem Vorzeichen gebucht.
Der Bestand zu einem beliebigen Zeitpunkt wird durch einen Inventurlauf ermittelt und nicht in der Tabelle gespeichert:
SQL-Code:
SELECT SUM(menge) AS bestand
FROM bewegungen
WHERE DATUM = :datum
Die Lagerbewegungen in einem Zeitraum erhältst du so:
SQL-Code:
SELECT *
FROM bewegungen
WHERE DATUM BETWEEN :datum1 AND :datum2
ORDER BY DATUM, ZEIT
Grüße vom marabu