Ce que vous recherchez est souvent appelé un tableau croisé. Voici un exemple qui produirait les résultats souhaités:
Select registrationDate
, Sum(Case When ValidityDate = '2010-10-25' Then 1 Else 0 End) As `2010-10-25`
, Sum(Case When ValidityDate = '2010-10-26' Then 1 Else 0 End) As `2010-10-26`
, Sum(Case When ValidityDate = '2010-10-27' Then 1 Else 0 End) As `2010-10-27`
From MyTable
Group By registrationDate
Si ce que vous voulez est de construire dynamiquement les colonnes, vous êtes à la recherche d'un tableau croisé dynamique. Le langage SQL en général n'est pas conçu autour de la génération de colonnes dynamiques et donc cela ne peut pas être fait nativement dans MySQL sans utiliser le SQL dynamique. Au lieu de cela, vous devez générer cette requête dans votre moteur de niveau intermédiaire ou de rapport.
Je ne pense pas que cela puisse être fait avec une requête. Effectuez une recherche pour une requête de tabulation croisée. Un résultat est ceci (bien que je n'ai jamais fait ceci, je le fais juste via le code): http://rpbouman.blogspot.com/2005/10/creating-crosstabs-in-mysql.html – xecaps12
Vraiment triste que MySQL doesn ne supporte pas Pivots. C'est l'outil exact dont vous avez besoin pour résoudre ce problème. –