Hallo zusammen,
Ich komme gerade nicht weiter. Ich habe diese zwei Tabellen
Produkte:
Produkte_verkauf:
Jetzt möchte ich eine VIEW erstellen. Folgendes sollte in der View zusammengefasst werden:
Diesen VIEW SQL habe ich:
Gibt diese VIEW:
Diese Punkte sind noch nicht wie gewünscht:
Wie kann ich die SQL VIEW erweiter, so das diese zwei Punkt auch enthalten sind ?

Ich komme gerade nicht weiter. Ich habe diese zwei Tabellen
Produkte:
Code:
CREATE TABLE IF NOT EXISTS `Produkte` (
`Produkte_id` int(11) NOT NULL AUTO_INCREMENT,
`Name` varchar(20) NOT NULL,
`Preis` decimal(10,2) NOT NULL,
PRIMARY KEY (`Produkte_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=6 ;
INSERT INTO `Produkte` (`Produkte_id`, `Name`, `Preis`) VALUES
(1, 'Brot', 6.00),
(2, 'Gurke', 10.00),
(3, 'Nuss', 20.50),
(4, 'Torte', 15.00),
(5, 'Wein', 15.00);
Produkte_verkauf:
Code:
CREATE TABLE IF NOT EXISTS `Produkte_verkauf` (
` Produkte_verkauf_id` int(11) NOT NULL AUTO_INCREMENT,
`Produkte_id` int(11) NOT NULL,
`Geld_bezahlt` decimal(10,2) NOT NULL,
`Status` smallint(1) NOT NULL DEFAULT '0',
PRIMARY KEY (` Produkte_verkauf_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=10 ;
INSERT INTO `Produkte_verkauf` (` Produkte_verkauf_id`, `Produkte_id`, `Geld_bezahlt`, `Status`) VALUES
(1, 1, 5.00, 1),
(2, 1, 1.00, 1),
(3, 2, 5.00, 1),
(4, 2, 5.00, 0),
(5, 3, 20.00, 1),
(6, 4, 20.00, 1);
Jetzt möchte ich eine VIEW erstellen. Folgendes sollte in der View zusammengefasst werden:
- Welche Produkte sind bezahlt
- Wieviel wurde bereits bezahlt
- Differenz bereits bezahlt zum Preis
Diesen VIEW SQL habe ich:
Code:
CREATE VIEW
Produkte_View (
Produkte_id,
Name,
Preis,
Zahlungsstatus,
Total_Geld_bezahlt,
Noch_offen
) AS
SELECT
P.Produkte_id, P.Name, P.Preis,
IF( SUM(V.Geld_bezahlt) >= P.Preis, 1, 0 ) AS Zahlungsstatus,
SUM(V.Geld_bezahlt) AS Total_Geld_bezahlt,
(P.Preis - SUM(V.Geld_bezahlt)) AS Noch_offen
FROM
Produkte P, Produkte_verkauf V
WHERE
V.Produkte_id = P.Produkte_id
AND
V.Status = 1
GROUP BY
V.Produkte_id
Gibt diese VIEW:
Code:
Produkte_id Name Preis Zahlungsstatus Total_Geld_bezahlt Noch_offen
1 Brot 6.00 1 6.00 0.00
2 Gurke 10.00 1 5.00 5.00
3 Nuss 20.50 1 20.00 0.50
4 Torte 15.00 1 20.00 -5.00
Diese Punkte sind noch nicht wie gewünscht:
- "Zahlungsstatus" erkennt nicht ob der "Status" in der Tabelle V auf 0=offen oder 1=bezahlt ist
- Produkt "Wein" 5 fehlt ganz, sollte stehen Zahlungsstatus 0 und Noch_offen 15
Wie kann ich die SQL VIEW erweiter, so das diese zwei Punkt auch enthalten sind ?


Zuletzt bearbeitet: