Hi,
ich versuche, es nochmal neu formuliert:
--------------------------------------------------------------
Die Tabellen:
Lieferscheine:
LieferscheinID, IndexID, VorgangsID, Belegart, ...
Lieferscheinartikel
ArtikelID, LieferscheinID, ArtNr, ArtBez, VorgangsID, ...
Lieferscheinmengen
MengenID, ArtikelID, IndexID, Menge, ...
--------------------------------------------------------------
Vorhandene Parameter vor der Query:
- LieferscheinID = 3
- VorgangsID = 333
- IndexID = 2
- Belegart = CDE
-------------------------------------------------------------
Query:
Liste mir alle Artikel des Bestellvorgangs (JOIN über VorgangsID und Belegart) auf und zeige mir, ob und oin welcher Anzahl hiervon schon welche geliefert wurden,
also ein Eintrag in der Lieferscheinmengen-Tabelle existiert (LEFT JOIN über ArtikelID).
Und die IndexID von Tabelle 3 soll der IndexID der Tabelle 1 entsprechen.
-------------------------------------------------------------
Gewünschtes Ergebnis:
Artnr., Artbez., Belegart, Menge, Sonstiges
aaa, aaa, CDE, -, -
bbb, bbb, CDE, 44, sontiger Text 1
ccc, ccc, CDE, 444, sontiger Text 2
ddd, ddd, CDE, -, -
--------------------------------------------------------------
Und hier eine Testtabelle zum event. anlegen?~~~sql
CREATE TABLE IF NOT EXISTS lieferscheinartikel (
ArtikelID int(6) NOT NULL AUTO_INCREMENT,
LieferscheinID int(6) NOT NULL,
Artnr varchar(100) NOT NULL DEFAULT '',
Artbez varchar(150) NOT NULL DEFAULT '',
VorgangsID int(6) NOT NULL DEFAULT '0',
PRIMARY KEY (ArtikelID),
KEY LieferscheinID (LieferscheinID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
INSERT INTO lieferscheinartikel (ArtikelID, LieferscheinID, Artnr, Artbez, VorgangsID) VALUES
(1, 1, 'aaa', 'aaa', 333),
(2, 1, 'bbb', 'bbb', 333),
(3, 1, 'ccc', 'ddd', 333),
(4, 1, 'ddd', 'ddd', 333),
(5, 2, 'aaa', 'aaa', 333),
(6, 2, 'bbb', 'bbb', 333),
(7, 2, 'ccc', 'ddd', 333),
(8, 2, 'ddd', 'ddd', 333);
CREATE TABLE IF NOT EXISTS lieferscheine (
LieferscheinID int(6) NOT NULL AUTO_INCREMENT,
IndexID int(6) NOT NULL,
VorgangsID int(6) NOT NULL DEFAULT '0',
Belegart varchar(3) NOT NULL DEFAULT '',
PRIMARY KEY (LieferscheinID),
KEY VorgangsID (VorgangsID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
INSERT INTO lieferscheine (LieferscheinID, IndexID, VorgangsID, Belegart) VALUES
(1, 1, 333, 'ABC'),
(2, 1, 333, 'CDE'),
(3, 2, 333, 'CDE');
CREATE TABLE IF NOT EXISTS lieferscheinmengen (
MengenID int(6) NOT NULL AUTO_INCREMENT,
ArtikelID int(6) NOT NULL,
IndexID int(6) NOT NULL,
Menge float(10,2) NOT NULL DEFAULT '0.00',
Sonstiges text NOT NULL,
PRIMARY KEY (MengenID),
KEY LieferscheinID (ArtikelID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
INSERT INTO lieferscheinmengen (MengenID, ArtikelID, IndexID, Menge, Sonstiges) VALUES
(1, 5, 1, 2.00, ''),
(2, 6, 1, 3.00, ''),
(3, 7, 1, 3.00, ''),
(4, 8, 1, 2.00, ''),
(5, 6, 2, 44.00, 'sontiger Text 1'),
(6, 7, 2, 444.00, 'sonstiger Text 2');
Wer hilft mir dabei?
Schöne Grüße, Bernd