Lukas.: mysql: SUM und DISTINCT

Beitrag lesen

Soll ich mal versuchen, mein Beispiel komplett in mysql nachzumodellieren, damit es für Außenstehende (und dann auch für mich) nachvollziehbar wird?

Falls interessant:

DB:

CREATE TABLE IF NOT EXISTS tabelle4 (
  KID int(11) NOT NULL AUTO_INCREMENT,
  TID int(6) DEFAULT NULL,
  MID int(6) DEFAULT NULL,
  EK decimal(10,2) DEFAULT '0.00',
  VK decimal(10,2) DEFAULT '0.00',
  PRIMARY KEY (KID),
  UNIQUE KEY TID (TID)
) ENGINE=MyISAM;

INSERT INTO tabelle4 (KID, TID, MID, EK, VK) VALUES
(415, 1924, 4343, 81.20, 170.50),
(414, 1923, 4343, 43.20, 158.20),
(413, 1922, 4343, 28.00, 89.60),
(412, 1921, 4343, 556.20, 2279.50),
(411, 1920, 4343, 5286.00, 15001.00);

CREATE TABLE IF NOT EXISTS tabelle1 (
  MID int(6) NOT NULL AUTO_INCREMENT,
  PRIMARY KEY (MID)
) ENGINE=MyISAM;

INSERT INTO tabelle1 (MID) VALUES (4343);

CREATE TABLE IF NOT EXISTS tabelle3 (
  TID int(6) NOT NULL AUTO_INCREMENT,
  TbID int(5) NOT NULL DEFAULT '0',
  Anzahl decimal(5,2) DEFAULT '0.00',
  PRIMARY KEY (TID),
  KEY TbID (TbID)
) ENGINE=MyISAM;

INSERT INTO tabelle3 (TID, TbID,Anzahl) VALUES
(1920, 1522, 1.00),
(1921, 1523, 4.00),
(1922, 1524, 2.00),
(1923, 1525, 4.00),
(1924, 1526, 3.00);

CREATE TABLE IF NOT EXISTS tabelle2 (
  TbID int(6) NOT NULL AUTO_INCREMENT,
  MID int(5) NOT NULL DEFAULT '0',
  PRIMARY KEY (TbID),
  KEY MontagenID (MID)
) ENGINE=MyISAM;

INSERT INTO tabelle2 (TbID, MID) VALUES
(1522, 4343),
(1523, 4343),
(1524, 4343),
(1525, 4343),
(1526, 4343),
(1527, 4343),
(1628, 4343),
(1636, 4343),
(1637, 4343),
(1638, 4343),
(1639, 4343);

Query:

SELECT EK
FROM tabelle1 t1
LEFT JOIN tabelle2 t2 ON t1.MID = t2.MID
LEFT JOIN tabelle3 t3 ON t2.TbID = t3.TbID
LEFT JOIN tabelle4 t4 ON t1.MID = t4.MID
WHERE t1.MID =4343

Ergebnismenge:

55 Datensätze, anstelle von 5 Datensätzen. Vermutlich genau die 11 (t2) x 5 (t4) Datensätze.

Lukas