Utilisation crosstab ou autre solution ?

mardi 9 décembre 2014

Bonjour @ tous.


Je galère un peu à utiliser la fonction crosstab (que je n'arrive pas vraiment à utiliser) sans vraiment savoir s'il s'agit de la solution idéale, je m'explique :


J'ai une table qui contient les champs suivants :




Col1 Col2
Service1 2014-02-10
Service1 2014-02-10
Service1 2013-02-10
Service2 2011-02-10
Service3 2012-02-10
Service3 2013-02-10


Ce que j'aimerais obtenir c'est :




Col1 2011 2012 2013 2014
Service1 0 0 1 2
Service2 1 0 0 0
Service3 0 1 1 0


Pour obtenir ce résultat j'ai tenté un crosstab dont j'ai visiblement du mal à comprendre le comportement en faisant :




SELECT * FROM crosstab (
'SELECT service,COUNT(*) nb,EXTRACT(YEAR FROM date)AS annee FROM device GROUP BY service,EXTRACT(YEAR FROM date) ORDER BY service,EXTRACT(YEAR FROM date)' ,
'SELECT DISTINCT EXTRACT(YEAR FROM date) AS annee FROM device')
as (service varchar,"2010" numeric, "2011" numeric, "2012" numeric, "2013" numeric, "2014" numeric)


Et le résultat de cette requête me donne :




Col1 2011 2012 2013 2014
Service1
Service2
Service3


Merci de votre aide.


Geo-x





0 commentaires:

Enregistrer un commentaire

 

Lorem

Ipsum

Dolor