Napofis
require 'brain.php';
Ich hab da auch mal ein wenig experimentiert.
Angenommen du hast 2 Tabellen, eine mit den Einträgen und eine für die Creators.
customer
user
Dann würde dir folgende Abfrage
folgendes Ergebnis liefern.
Dadurch hast du die Jahre nicht gemischt und kannst dynamisch neue Creators hinzufügen. Durch die Vergabe der id für einen Creator wird deine DB auch etwas kleiner und schneller.
Angenommen du hast 2 Tabellen, eine mit den Einträgen und eine für die Creators.
customer
Code:
Field Type
id int(11)
created datetime
created_by int(11)
user
Code:
Field Type
id int(11)
name varchar(50)
Dann würde dir folgende Abfrage
SQL:
SELECT
`u`.`Name`,
YEAR(`created`) AS `Jahr`,
SUM(MONTH(`c`.`created`)=1) AS `Januar`,
SUM(MONTH(`c`.`created`)=2) AS `Februar`,
SUM(MONTH(`c`.`created`)=3) AS `März`,
SUM(MONTH(`c`.`created`)=4) AS `April`,
SUM(MONTH(`c`.`created`)=5) AS `Mai`,
SUM(MONTH(`c`.`created`)=6) AS `Juni`,
SUM(MONTH(`c`.`created`)=7) AS `Juli`,
SUM(MONTH(`c`.`created`)=8) AS `August`,
SUM(MONTH(`c`.`created`)=9) AS `September`,
SUM(MONTH(`c`.`created`)=10) AS `Oktober`,
SUM(MONTH(`c`.`created`)=11) AS `November`,
SUM(MONTH(`c`.`created`)=12) AS `Dezember`
FROM
`customer` AS `c`
LEFT JOIN
`user` AS `u` ON `c`.`created_by`=`u`.`id`
WHERE
`c`.`id` BETWEEN 0 AND 1000
GROUP BY
`Jahr`,`c`.`created_by`
ORDER BY
`c`.`created` ASC,`c`.`created_by` ASC
folgendes Ergebnis liefern.
Code:
+----------------+------+--------+---------+-------+-------+------+------+------+--------+-----------+---------+----------+----------+
| Name | Jahr | Januar | Februar | März | April | Mai | Juni | Juli | August | September | Oktober | November | Dezember |
+----------------+------+--------+---------+-------+-------+------+------+------+--------+-----------+---------+----------+----------+
| Foo Bar | 2010 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2 |
| Foo Bar | 2011 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| Max Mustermann | 2011 | 0 | 0 | 2 | 1 | 2 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
+----------------+------+--------+---------+-------+-------+------+------+------+--------+-----------+---------+----------+----------+
3 rows in set (0.00 sec)
Dadurch hast du die Jahre nicht gemischt und kannst dynamisch neue Creators hinzufügen. Durch die Vergabe der id für einen Creator wird deine DB auch etwas kleiner und schneller.
Zuletzt bearbeitet von einem Moderator: