Como retornar o Registro no SQL
Boa tarde amigos da lista
estou precisando da ajuda de vocês
Tenho um relatório que eu preciso exibir dentre várias informações os códigos de envio que podem ser:
1- INFORMATIZADO DISQUETE
2- INFORMATIZADO INTERNET
3- SISTEMA CARTORIO
4- QUESTIONARIO
para cada um desses eu preciso somar os seus lançamentos, só que independente se o codigo de envio retorne ou não registro eu tenho que exibi-lo zerado.
segue o SQL
nesse caso a consulta somente me retorna os códigos 1,3,4.
Como posso fazer para exibir o 2 zerado
SELECT TC.COD_MUNICIPIO, TM.NOM_MUNICIPIO, TC.COD_MUNICIPIO||´ - ´||TM.NOM_MUNICIPIO AS MUNICIPIO,
TC.COD_DIFERENCIADOR AS INFORMANTE,
TC.COD_ENVIO AS TIPO_ENVIO,
SUM(CASE WHEN TC.TIPO_INTERNET IS NULL THEN 1 ELSE 0 END) AS SEM_INTERNET,
SUM(CASE WHEN TC.TIPO_INTERNET = 1 THEN 1 ELSE 0 END) AS ADSL,
SUM(CASE WHEN TC.TIPO_INTERNET = 2 THEN 1 ELSE 0 END) AS MINI_MODEM,
SUM(CASE WHEN TC.TIPO_INTERNET = 3 THEN 1 ELSE 0 END) AS LINHA_DISCADA
FROM T_CARTORIO TC
JOIN T_MUNICIPIO TM ON (TC.COD_UF = TM.COD_UF)
AND (TC.COD_MUNICIPIO = TM.COD_MUNICIPIO)
WHERE TC.COD_UF = 33
AND TC.COD_MUNICIPIO = 00100
AND TC.COD_DIFERENCIADOR = 0
AND TC.COD_ENVIO IN (1,2,3,4)
GROUP BY TC.COD_MUNICIPIO, TM.NOM_MUNICIPIO, TC.COD_DIFERENCIADOR, TC.COD_ENVIO
Ex
MUNICIPIO TIPO_ENVIO SEM_INTERNET ADSL MINI_MODEM LINHA_DISCADA
00100 - ANGRA DOS REIS
1-INFORMATIZADO DISQUETE 3 0 0 0
2-INFORMATIZADO INTERNET 0 0 0 0
3-SISTEMA CARTORIO 1 0 0 0
4-QUESTIONARIO 1 0 0 0
tem que acrescentar o registro 2 mesmo que ele não retorne na query.
Raphael
estou precisando da ajuda de vocês
Tenho um relatório que eu preciso exibir dentre várias informações os códigos de envio que podem ser:
1- INFORMATIZADO DISQUETE
2- INFORMATIZADO INTERNET
3- SISTEMA CARTORIO
4- QUESTIONARIO
para cada um desses eu preciso somar os seus lançamentos, só que independente se o codigo de envio retorne ou não registro eu tenho que exibi-lo zerado.
segue o SQL
nesse caso a consulta somente me retorna os códigos 1,3,4.
Como posso fazer para exibir o 2 zerado
SELECT TC.COD_MUNICIPIO, TM.NOM_MUNICIPIO, TC.COD_MUNICIPIO||´ - ´||TM.NOM_MUNICIPIO AS MUNICIPIO,
TC.COD_DIFERENCIADOR AS INFORMANTE,
TC.COD_ENVIO AS TIPO_ENVIO,
SUM(CASE WHEN TC.TIPO_INTERNET IS NULL THEN 1 ELSE 0 END) AS SEM_INTERNET,
SUM(CASE WHEN TC.TIPO_INTERNET = 1 THEN 1 ELSE 0 END) AS ADSL,
SUM(CASE WHEN TC.TIPO_INTERNET = 2 THEN 1 ELSE 0 END) AS MINI_MODEM,
SUM(CASE WHEN TC.TIPO_INTERNET = 3 THEN 1 ELSE 0 END) AS LINHA_DISCADA
FROM T_CARTORIO TC
JOIN T_MUNICIPIO TM ON (TC.COD_UF = TM.COD_UF)
AND (TC.COD_MUNICIPIO = TM.COD_MUNICIPIO)
WHERE TC.COD_UF = 33
AND TC.COD_MUNICIPIO = 00100
AND TC.COD_DIFERENCIADOR = 0
AND TC.COD_ENVIO IN (1,2,3,4)
GROUP BY TC.COD_MUNICIPIO, TM.NOM_MUNICIPIO, TC.COD_DIFERENCIADOR, TC.COD_ENVIO
Ex
MUNICIPIO TIPO_ENVIO SEM_INTERNET ADSL MINI_MODEM LINHA_DISCADA
00100 - ANGRA DOS REIS
1-INFORMATIZADO DISQUETE 3 0 0 0
2-INFORMATIZADO INTERNET 0 0 0 0
3-SISTEMA CARTORIO 1 0 0 0
4-QUESTIONARIO 1 0 0 0
tem que acrescentar o registro 2 mesmo que ele não retorne na query.
Raphael
Rbfonseca
Curtidas 0
Respostas
Emerson Nascimento
22/09/2008
SELECT TC.COD_MUNICIPIO, TM.NOM_MUNICIPIO, TC.COD_MUNICIPIO||´ - ´||TM.NOM_MUNICIPIO AS MUNICIPIO, TC.COD_DIFERENCIADOR AS INFORMANTE, TC.COD_ENVIO AS TIPO_ENVIO, SUM(CASE WHEN TC.TIPO_INTERNET IS NULL THEN 1 ELSE 0 END) AS SEM_INTERNET, SUM(CASE WHEN TC.TIPO_INTERNET = 1 THEN 1 ELSE 0 END) AS ADSL, SUM(CASE WHEN TC.TIPO_INTERNET = 2 THEN 1 ELSE 0 END) AS MINI_MODEM, SUM(CASE WHEN TC.TIPO_INTERNET = 3 THEN 1 ELSE 0 END) AS LINHA_DISCADA FROM T_CARTORIO TC LEFT JOIN T_MUNICIPIO TM ON (TM.COD_UF = TC.COD_UF AND TM.COD_MUNICIPIO = TC.COD_MUNICIPIO) WHERE TC.COD_UF = 33 AND TC.COD_MUNICIPIO = 00100 AND TC.COD_DIFERENCIADOR = 0 AND TC.COD_ENVIO IN (1,2,3,4) GROUP BY TC.COD_MUNICIPIO, TM.NOM_MUNICIPIO, TC.COD_DIFERENCIADOR, TC.COD_ENVIO
GOSTEI 0