Stimmt.
Und kann man auch gleich in der sql-query umsetzen:
(sowas mach laune =)
-- test tabelle erstellen, IF NOT EXISTS (wenn nicht schon existiert)
CREATE TABLE IF NOT EXISTS `db`.`new_table` (
`id` int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
`a` VARCHAR(45) NOT NULL,
`b` VARCHAR(45) NOT NULL,
`c` VARCHAR(45) NOT NULL,
`d` VARCHAR(45) NOT NULL,
`e` VARCHAR(45) NOT NULL,
`f` VARCHAR(45) NOT NULL,
`g` VARCHAR(45) NOT NULL,
`h` VARCHAR(45) NOT NULL,
`i` VARCHAR(45) NOT NULL,
`j` VARCHAR(45) NOT NULL
);
-- test INSERTs:
INSERT INTO `db`.`new_table`
(`a`,`b`,`c`,`d`,`e`,`f`,`g`,`h`,`i`,`j`)
VALUES
(1,2,3,4,5,'','','','',''),
('','',3,4,5,6,'','','',10),
(1,2,3,4,5,6,7,8,9,10),
('','','',4,5,6,7,8,9,10);
-- SELECT Bsp:
SELECT
`id`,
ROUND( -- runde
(
IF(`a` != '', 1, 0) + -- WENN (`a` NICHT leer ist, dann wähle hier 1, sonst 0)
IF(`b` != '', 1, 0) + -- usw ... alle addieren
IF(`c` != '', 1, 0) +
IF(`d` != '', 1, 0) +
IF(`e` != '', 1, 0) +
IF(`f` != '', 1, 0) +
IF(`g` != '', 1, 0) +
IF(`h` != '', 1, 0) +
IF(`i` != '', 1, 0) +
IF(`j` != '', 1, 0)
)
/ ( 10 / 100 ) -- siehe Basiiis rechnung
,0 -- das kommt von ROUND(...,0)
) AS `fortschritt in prozent`
FROM
`db`.`new_table`
;
Alles anzeigen