| Exibir mensagem anterior :: Exibir próxima mensagem |
| Autor |
Mensagem |
adriano_servitec Colaborador

Registrado: Sexta-Feira, 30 de Janeiro de 2004 Mensagens: 17618
|
Enviada: Ter Mar 26, 2013 4:22 pm Assunto: Duvida com clausula where Firebird? {Resolvido} |
|
|
Mais uma duvia aqui com select
Fazendo o select assim
| Código: | SELECT C.CODIGO,
C.NOME,
SUM( V.VALOR_EM_PRODUTOS + V.VALOR_EM_SERVICOS + V.VALOR_EM_PACOTES ) VALOR_GASTO,
COUNT(*) QTD_VISITAS,
SUM( V.VALOR_EM_PRODUTOS + V.VALOR_EM_SERVICOS + V.VALOR_EM_PACOTES ) / COUNT(*) TICKET_MEDIO
FROM VENDAS V, CLIENTES C
WHERE V.CODIGO_CLIENTE = C.CODIGO
and v.codigo_cliente = :codigo
and v.cancelado is null
AND V.TIPO IS NULL
GROUP BY 1,2 |
Funciona
Ja se eu fizer assim
| Código: | SELECT C.CODIGO,
C.NOME,
SUM( V.VALOR_EM_PRODUTOS + V.VALOR_EM_SERVICOS + V.VALOR_EM_PACOTES ) VALOR_GASTO,
COUNT(*) QTD_VISITAS,
SUM( V.VALOR_EM_PRODUTOS + V.VALOR_EM_SERVICOS + V.VALOR_EM_PACOTES ) / COUNT(*) TICKET_MEDIO
FROM VENDAS V, CLIENTES C
WHERE V.CODIGO_CLIENTE = C.CODIGO
and v.codigo_cliente = :codigo
and v.cancelado <> 'Sim'
AND V.TIPO IS NULL
GROUP BY 1,2 |
Não funciona, mesmo tendo o campo CANCELADO = Sim na tabela, não filtra desta forma ai.
Quero garantir que este campo não seja apenas IS NULL mais talvez possa ter = 'Não' também por isso pensei em usar o <> de 'Sim'
Alguem sabe dizer poque não funcinou assim ? _________________ Jogo seu smartphone? Acesse o link e confira.
https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
https://play.google.com/store/apps/details?id=br.com.couldsys.drumsetfree
Editado pela última vez por adriano_servitec em Qua Mar 27, 2013 8:58 am, num total de 1 vez |
|
| Voltar ao Topo |
|
 |
joemil Moderador

Registrado: Quinta-Feira, 25 de Março de 2004 Mensagens: 9100 Localização: Sinop-MT
|
Enviada: Ter Mar 26, 2013 4:27 pm Assunto: |
|
|
a primeira coisa é colocar um valor default no campo e dar um update nos campos q tiverem null para o valor default.
mas se nao puder fazer isso, eu faco assim:
| Código: | | and ((v.cancelado IS NULL) OR NOT(v.cancelado = "NAO")) |
tb nao descobri pq dessa forma nao funciona:
| Código: | | and v.cancelado <> 'Sim' |
_________________ <b>SEMPRE COLOQUE [RESOLVIDO] NO SEU POST</b>
Enviar imagens: http://tinypic.com/ |
|
| Voltar ao Topo |
|
 |
adriano_servitec Colaborador

Registrado: Sexta-Feira, 30 de Janeiro de 2004 Mensagens: 17618
|
Enviada: Ter Mar 26, 2013 4:32 pm Assunto: |
|
|
| joemil escreveu: | a primeira coisa é colocar um valor default no campo e dar um update nos campos q tiverem null para o valor default.
mas se nao puder fazer isso, eu faco assim:
| Código: | | and ((v.cancelado IS NULL) OR NOT(v.cancelado = "NAO")) |
tb nao descobri pq dessa forma nao funciona:
| Código: | | and v.cancelado <> 'Sim' |
| É vou deixar assim mesmo
| Código: | | and ((v.cancelado IS NULL) OR (v.cancelado = 'NAO')) |
Obrigado Joemil, e se alguém soubler porque da outra forma não funciona eu agradeço. _________________ Jogo seu smartphone? Acesse o link e confira.
https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
https://play.google.com/store/apps/details?id=br.com.couldsys.drumsetfree |
|
| Voltar ao Topo |
|
 |
pestana Colaborador

Registrado: Sábado, 25 de Junho de 2005 Mensagens: 3147 Localização: Araras-SP
|
Enviada: Qua Mar 27, 2013 7:49 am Assunto: |
|
|
Adriano eu não sei se entendi a sua dúvida,
será que é por causa que no select você esteja utilizando o AND, com isso você quer dizer que se o campo 'cancelado' for diferente de 'Sim' e o tipo for nulo o select é satisfeito.
Se o campo 'cancelado' for igual a 'Sim' e tipo não é nulo, não retorna o select.
Se o campo 'cancelado' for diferente de 'Sim' e tipo não é nulo, não retorna o select.
Se o campo 'cancelado' for igual a 'Sim' e tipo é nulo, não retorna o select.
| Joemil escreveu: | | and ((v.cancelado IS NULL) OR NOT(v.cancelado = "NAO")) |
Então o que o Joemil fez foi que se qualquer uma das expressões for verdadeiro o select é satisfeito. Repare que foi utilizado o 'OR'. _________________ Ao invés de ficar desanimado no que deu de errado, olhe para frente, aprenda com os erros e veja o que ainda pode ser feito. A determinação e a persistência é uma das etapas para o sucesso. |
|
| Voltar ao Topo |
|
 |
adriano_servitec Colaborador

Registrado: Sexta-Feira, 30 de Janeiro de 2004 Mensagens: 17618
|
|
| Voltar ao Topo |
|
 |
joemil Moderador

Registrado: Quinta-Feira, 25 de Março de 2004 Mensagens: 9100 Localização: Sinop-MT
|
Enviada: Qua Mar 27, 2013 9:07 am Assunto: |
|
|
o problema é q v.cancelado <> 'SIM' nao funciona
por isso fiz assim:
and ((v.cancelado IS NULL) OR NOT(v.cancelado = "NAO")) _________________ <b>SEMPRE COLOQUE [RESOLVIDO] NO SEU POST</b>
Enviar imagens: http://tinypic.com/ |
|
| Voltar ao Topo |
|
 |
|