Usuário com melhor resposta
Resultado de Query

Pergunta
-
Bom Dia,
Tenho um query onde possui ou não registros, sendo assim preciso fazer um query onde quando não tiver registros apresentar as linhas com valor 0 . Preciso disso para criar relários no Crystal Report, pois quando não tem registros apresenta o campo em branco.Alguem poderia me ajudar?
Respostas
-
Segue um script.... talvez ajude..
declare @tbProduto table (idProd int, nome varchar(20)) insert into @tbProduto values (1,'Xbox') insert into @tbProduto values (2,'PS3') insert into @tbProduto values (3,'Wii') ;with cte_dados as ( select idProd,nome from @tbProduto where idProd=20 --filtro para codigo que não existe union select 0,'0' ) select top 1 * from cte_dados order by idProd desc
att.
Marcelo FernandesMCP, MCDBA, MCSA, MCTS.
Se útil, classifique!!!
Me siga no twitter: @marcelodba- Sugerido como Resposta Eder Costa quinta-feira, 10 de fevereiro de 2011 13:25
- Marcado como Resposta Eder Costa quinta-feira, 17 de fevereiro de 2011 13:56
Todas as Respostas
-
Rene
segue um exemplo básico... onde listo vendas de 2012 que não existem... e é exibido o valor 0
declare @tbProduto table (idProd int, nome varchar(20)) declare @tbVenda table (idProd int, data datetime, valor decimal(5,2)) insert into @tbProduto values (1,'Xbox') insert into @tbProduto values (2,'PS3') insert into @tbProduto values (3,'Wii') insert into @tbVenda values(1,'20110201',999.99) insert into @tbVenda values(3,'20110111',150.00) insert into @tbVenda values(2,'20101221',800.00) SELECT a.idProd, nome, isnull(valor,0) as Valor FROM @tbProduto a left join @tbVenda b on a.idProd=b.idProd and year(b.data)=2012
Att.
Marcelo FernandesMCP, MCDBA, MCSA, MCTS.
Se útil, classifique!!!
Me siga no twitter: @marcelodba- Sugerido como Resposta Junior Galvão - MVPMVP segunda-feira, 7 de fevereiro de 2011 18:07
-
-
Acrescente Union Select 0, 0, 0 (tantos zeros quantos forem os campos do Select) ao final do Select. O problema é que o registro com zeros irá aperecer no resultado também quando a instrução retornar registros, mas essa é uma situação que poderia ser controlada pela sua aplicação.
-
Rene,
Neste caso você teria que testar quantas linhas estão sendo retornadas para depois você fazer a apresentação de valor 0,00.
Desta forma, não seria no mesmo query, teria que implemantar uma análise condicional através do comando IF.
Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com] -
Segue um script.... talvez ajude..
declare @tbProduto table (idProd int, nome varchar(20)) insert into @tbProduto values (1,'Xbox') insert into @tbProduto values (2,'PS3') insert into @tbProduto values (3,'Wii') ;with cte_dados as ( select idProd,nome from @tbProduto where idProd=20 --filtro para codigo que não existe union select 0,'0' ) select top 1 * from cte_dados order by idProd desc
att.
Marcelo FernandesMCP, MCDBA, MCSA, MCTS.
Se útil, classifique!!!
Me siga no twitter: @marcelodba- Sugerido como Resposta Eder Costa quinta-feira, 10 de fevereiro de 2011 13:25
- Marcado como Resposta Eder Costa quinta-feira, 17 de fevereiro de 2011 13:56
-
-