Zuweisen und abändern von Ausgabe

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
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:
Zurück