Hat sich erledigt, Vielen Dank nochmal an alle die geholfen haben. Hier hat mir der Tipp von EKKi geholfen. Ich habe den Datentyp für den Preis auf Float geändert. Jetzt funktioniert alles perfekt. Für die Vollständigkeit und andere mit dem selben Problem hier nochmal der komplette Code.
-- ----------------------------
-- Table structure for artikel
-- ----------------------------
CREATE TABLE `artikel` (
`artikel_id` int(10) NOT NULL auto_increment,
`group_id` int(10) default NULL,
`artikel_name` varchar(100) collate latin1_general_ci default NULL,
`artikel_preis` float(10,2) default NULL,
PRIMARY KEY (`artikel_id`)
) ENGINE=MyISAM AUTO_INCREMENT=12 DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
-- ----------------------------
-- Records
-- ----------------------------
INSERT INTO `artikel` VALUES ('1', '1', 'Fernseher A', '100.00');
INSERT INTO `artikel` VALUES ('2', '1', 'Fernseher B', '200.00');
INSERT INTO `artikel` VALUES ('3', '1', 'Fernseher C', '150.00');
INSERT INTO `artikel` VALUES ('4', '2', 'Radio A', '25.00');
INSERT INTO `artikel` VALUES ('5', '2', 'Radio B', '30.00');
INSERT INTO `artikel` VALUES ('6', '2', 'Radio C', '40.00');
INSERT INTO `artikel` VALUES ('7', '2', 'Radio D', '20.00');
INSERT INTO `artikel` VALUES ('8', '3', 'Toaster A', '30.00');
INSERT INTO `artikel` VALUES ('9', '3', 'Toaster B', '15.00');
INSERT INTO `artikel` VALUES ('10', '3', 'Toaster C', '12.00');
INSERT INTO `artikel` VALUES ('11', '3', 'Toaster D', '20.00');
-- ----------------------------
-- Table structure for gruppen
-- ----------------------------
CREATE TABLE `gruppen` (
`group_id` int(10) NOT NULL auto_increment,
`group_name` varchar(100) collate latin1_general_ci default NULL,
PRIMARY KEY (`group_id`)
) ENGINE=MyISAM AUTO_INCREMENT=4 DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
-- ----------------------------
-- Records
-- ----------------------------
INSERT INTO `gruppen` VALUES ('1', 'Fernseher');
INSERT INTO `gruppen` VALUES ('2', 'Radio');
INSERT INTO `gruppen` VALUES ('3', 'Toaster');
SELECT artikel_id,
group_id,
artikel_name,
artikel_preis
FROM artikel a1
WHERE artikel_preis IN
(SELECT a2.artikel_preis
FROM artikel a2
WHERE a1.group_id = a2.group_id
)
AND (artikel_preis =
(SELECT MIN(a3.artikel_preis)
FROM artikel a3
WHERE a1.group_id = a3.group_id
)
OR artikel_preis =
(SELECT MIN(a2.artikel_preis)
FROM artikel a2
WHERE artikel_preis >
(SELECT MIN(a3.artikel_preis)
FROM artikel a3
WHERE a1.group_id = a3.group_id
)
AND a1.group_id = a2.group_id
) )
ORDER BY artikel_preis ASC