Kai: Query gesucht

Beitrag lesen

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