Trazer valores NULL.
20/01/2015
0
Olá como faço para que os dias após a data de hoje apareçam como NULL para o ano somente de 2015, por exemplo hoje é dia 19, dessa forma do dia 20 ao 31, no ano de 2015, os valores devem ser NULL ao invés de 0. Abaixo está o código e o resultado.
[img]http://oi59.tinypic.com/1sfuao.jpg[/img]
SELECT date_part('year', data) as ano, SUM(CASE WHEN date_part('day',data) = '1' THEN 1 ELSE 0 END) AS "01", SUM(CASE WHEN date_part('day',data) = '2' THEN 1 ELSE 0 END) AS "02", SUM(CASE WHEN date_part('day',data) = '3' THEN 1 ELSE 0 END) AS "03", SUM(CASE WHEN date_part('day',data) = '4' THEN 1 ELSE 0 END) AS "04", SUM(CASE WHEN date_part('day',data) = '5' THEN 1 ELSE 0 END) AS "05", SUM(CASE WHEN date_part('day',data) = '6' THEN 1 ELSE 0 END) AS "06", SUM(CASE WHEN date_part('day',data) = '7' THEN 1 ELSE 0 END) AS "07", SUM(CASE WHEN date_part('day',data) = '8' THEN 1 ELSE 0 END) AS "08", SUM(CASE WHEN date_part('day',data) = '9' THEN 1 ELSE 0 END) AS "09", SUM(CASE WHEN date_part('day',data) = '10' THEN 1 ELSE 0 END) AS "10", SUM(CASE WHEN date_part('day',data) = '11' THEN 1 ELSE 0 END) AS "11", SUM(CASE WHEN date_part('day',data) = '12' THEN 1 ELSE 0 END) AS "12", SUM(CASE WHEN date_part('day',data) = '13' THEN 1 ELSE 0 END) AS "13", SUM(CASE WHEN date_part('day',data) = '14' THEN 1 ELSE 0 END) AS "14", SUM(CASE WHEN date_part('day',data) = '15' THEN 1 ELSE 0 END) AS "15", SUM(CASE WHEN date_part('day',data) = '16' THEN 1 ELSE 0 END) AS "16", SUM(CASE WHEN date_part('day',data) = '17' THEN 1 ELSE 0 END) AS "17", SUM(CASE WHEN date_part('day',data) = '18' THEN 1 ELSE 0 END) AS "18", SUM(CASE WHEN date_part('day',data) = '19' THEN 1 ELSE 0 END) AS "19", SUM(CASE WHEN date_part('day',data) = '20' THEN 1 ELSE 0 END) AS "20", SUM(CASE WHEN date_part('day',data) = '21' THEN 1 ELSE 0 END) AS "21", SUM(CASE WHEN date_part('day',data) = '22' THEN 1 ELSE 0 END) AS "22", SUM(CASE WHEN date_part('day',data) = '23' THEN 1 ELSE 0 END) AS "23", SUM(CASE WHEN date_part('day',data) = '24' THEN 1 ELSE 0 END) AS "24", SUM(CASE WHEN date_part('day',data) = '25' THEN 1 ELSE 0 END) AS "25", SUM(CASE WHEN date_part('day',data) = '26' THEN 1 ELSE 0 END) AS "26", SUM(CASE WHEN date_part('day',data) = '27' THEN 1 ELSE 0 END) AS "27", SUM(CASE WHEN date_part('day',data) = '28' THEN 1 ELSE 0 END) AS "28", SUM(CASE WHEN date_part('day',data) = '29' THEN 1 ELSE 0 END) AS "29", SUM(CASE WHEN date_part('day',data) = '30' THEN 1 ELSE 0 END) AS "30", SUM(CASE WHEN date_part('day',data) = '31' THEN 1 ELSE 0 END) AS "31", COUNT(*) as Total from admgis.controle_mortes WHERE subjetividade = 'CVLI' AND date_part('MONTH',data) = 01 AND UPPER(cidade) = 'ARAPIRACA' GROUP BY ano ORDER BY ano
[img]http://oi59.tinypic.com/1sfuao.jpg[/img]
Jamerson
Curtir tópico
+ 0
Responder
Posts
28/01/2015
Ronaldo Lanhellas
Vou dar um exemplo e você replica para as próximas linhas:
CASE (SUM(CASE WHEN date_part('day',data) = '1' THEN 1 ELSE 0 END)) = 0 THEN NULL ELSE (SUM(CASE WHEN date_part('day',data) = '1' THEN 1 ELSE 0 END)) AS "01"
Responder
28/01/2015
Ronaldo Lanhellas
Vou dar um exemplo e você replica para as próximas linhas:
CASE (SUM(CASE WHEN date_part('day',data) = '1' THEN 1 ELSE 0 END)) = 0 THEN NULL ELSE (SUM(CASE WHEN date_part('day',data) = '1' THEN 1 ELSE 0 END)) AS "01"
Responder
Clique aqui para fazer login e interagir na Comunidade :)