Tach!
Tabelle Rechnungen
ID(int,6)| Lieferant(int,6)| Datum(date)| Betrag(dez,8-2)| mwst(dez,3-2)| Tage_bis_faellig(int,3)| bezahlt(int,1)Tabelle Zahlungen
ID(int,6)| Nettozahlung(dez,8-2)| Bruttozahlung(dez,8-2)| USt(dez,3-2)| Skonto(dez,3-2)Jetzt würde ich gerne eine Liste aller noch offenen Rechnungsbeträge bis zu einem Stichtag X als Liste erhalten.
Hi dedlfix,
Definiere "offener Rechnungsbetrag". Im einfachsten Fall brauchst du ja nur das bezahlt-Flag auszuwerten und ein wenig Datumsarithmetik zu betreiben. Aber dann würdest du ja die zweite Tabelle nicht mit in die Aufgabenstellung bringen ...
So wars eigentlich gedacht.
Andererseits hast Du natürlich recht.
Nur, wenn ich das wirklich auch buchhalterisch korrekt machen will, müßte ich ja auch noch eventuelle Gutschriften berücksichtigen. Ok, das könnte ich über ein Flag in Tabelle 1 noch machen.
Ein paar Beispieldaten und das erwartete Ergebnis wären nett.
Das erwartete Ergebnis ist sowas in der Art:
Konto: 70003 Lieferant xy GmbH
Datum Fällig ID OP-Restbetrag Buchungstext
15.10.2012 25.10.2012 14 45,22 RG-457889,Blabla
Summe 235,10
--------------------------------------------------------------------------
Konto: 70009 Lieferant yz KG
Datum Fällig ID OP-Restbetrag Buchungstext
20.10.2012 26.10.2012 20 45,22 RG-546289,Blabla
Summe 1.250,60
--------------------------------------------------------------------------
...
...
Gesamtsumme 15.120,20
Beispieldaten:
CREATE TABLE rechnungen (
RGID int(6) NOT NULL AUTO_INCREMENT,
Lieferant int(6) NOT NULL,
RGnummer varchar(50) NOT NULL,
Datum date NOT NULL,
Betrag decimal(10,2) NOT NULL,
Konto varchar(30) NOT NULL,
mwst decimal(6,2) NOT NULL DEFAULT '0.00',
Tage_bis_faellig int(3) NOT NULL,
bezahlt tinyint(1) NOT NULL DEFAULT '0',
PRIMARY KEY (RGID)
) ENGINE=MyISAM;
INSERT INTO rechnungen VALUES(1, 7, 'RG-123436', '2012-12-17', 500.00, 'wareneinkauf', 19.00, 10, 0);
INSERT INTO rechnungen VALUES(2, 254, 'RG-256897', '2012-12-14', 1000.00, 'wareneinkauf', 19.00, 0, 0);
INSERT INTO rechnungen VALUES(3, 16, 'RG-99999999', '2012-12-17', 60.00, 'tanken', 19.00, 0, 1);
INSERT INTO rechnungen VALUES(4, 17, 'RG666666', '2012-12-17', 2000.00, 'wareneinkauf_it', 19.00, 0, 0);
CREATE TABLE zahlungen (
ZID int(6) NOT NULL AUTO_INCREMENT,
RGID int(6) NOT NULL,
Nettog decimal(12,2) NOT NULL,
Bruttog decimal(12,2) NOT NULL,
USt decimal(4,2) NOT NULL,
Skonto decimal(6,2) NOT NULL,
Bezahlart varchar(30) NOT NULL,
Buchungstext varchar(255) NOT NULL,
PRIMARY KEY (ZID),
KEY RechnungenID (RGID)
) ENGINE=MyISAM;
INSERT INTO zahlungen VALUES(1, 1, 420.17, 500.00, 19.00, 0.00, 'Bar', '');
INSERT INTO zahlungen VALUES(2, 4, 504.20, 600.00, 19.00, 3.00, 'Bank', 'Buchungstext1');
INSERT INTO zahlungen VALUES(3, 4, 84.03, 100.00, 19.00, 3.00, 'Bank', 'Buchungstext2');
INSERT INTO zahlungen VALUES(4, 2, 210.08, 250.00, 19.00, 0.00, 'Bank', 'Buchungstext3');
Hierbei sind jetzt die Gutschriften (das Flag in tabelle 1) noch nicht berücksichtigt.
Viele Grüße, Kai