Fórum Trazer valores NULL. #507925
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
Gostei + 0
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
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)