AJUDA EM ROTINA SQL

HUBER.FABIO 18/12/2006 14:05:56
#190632
Caros estou tento problemas numa rotina SQL onde tenho um campo chamado Número da Nota Fiscal que está como caracter e estou pedindo no meu filtro o seguinte:

select * from tabela where numerodanota >= "100" And numerodanota <= "102"

o filtro esta me retornaldo além das notas 100 a 102 também notas com números 101150,101897,101547,102636, etc.

tem q identificar algo na função sql para campos caracter
ALMARTI 18/12/2006 14:09:19
#190633
select * from tabela where numerodanota >= CLNG("100") And numerodanota <= CLNG("102")

Para access, se for oracle, então terá que usar o TO_NUMBER

HUBER.FABIO 18/12/2006 14:16:35
#190635
Caro amigo estou usando o Acess e fazendo teste diretamente nele pelo modo SQL mais mesmo usando o CLNG não resolveu.
ALMARTI 18/12/2006 14:24:12
#190640
Olha, uma coisa é certa. Se é um campo indexado, o correto era que fosse uma chave numérica, e não alfa. Pense, número de NF, deveria ser um campo tipo numero. Porque está usando tipo texto?
HUBER.FABIO 18/12/2006 14:26:47
#190641
Então! a maioria dos meus campos que formam índices realmente são numéricos com excessão do Número da Nota que posso ter letras Ex: Nota 101254, 101254A.
ALMARTI 18/12/2006 14:36:27
#190646
Numero repétido de NF? To perguntado apenas para entender a regra de negócio.
HUBER.FABIO 18/12/2006 14:41:06
#190648
Número repetido do mesmo fornecedor seria quase impossível né, mais isso envolve também lançamento de notas frias onde o usuário lançara o q for com nota e o sem nota lança com caracter na frente. etc.
ALMARTI 18/12/2006 14:55:18
#190657
Realmente era o que eu imaginava. Mas uma coisa: este procedimento é passível de fiscalização. EM uma auditoria, a duplicidade de um número de NF fatalmente gera para o fiscal a impressão de sonegação. Acredite, já vi isto acontecer. Proponho que separe o caracter em um campo diferenciado, passando assim a ter dois campos, um numerico (NumeroNF) e outro alfa (IDNF). Poderia fazer depois sua busca segundo concatenação dos dois campos.
HUBER.FABIO 18/12/2006 14:58:54
#190658
Ok.mais de urgência tenho esse relatório para entregar ainda hoje, então de momento necessito da expressão em SQL funcionando corretamente e com certeza depois estarei estudando sua idéia para que possa colocar em prática.

Agradeço seus comentários e sugestões.
USUARIO.EXCLUIDOS 18/12/2006 16:51:14
#190709
Olá Huber,

Com relação à  expressão SQL, vc poderá tentar o seguinte:

select * from tabela where val(numerodanota) >= val("100") And val(numerodanota) <= val("102")

Com relação aos números duplicados não seriam os números de faturas para serem recebidas ?

Exemplo:

Nota Fiscal número: 1000

Fatura 1: Número: 1001A, Vencimento: xx/xx/xxxx, Valor: R$ 0,00 ?
Fatura 2: Número: 1001B, Vencimento: xx/xx/xxxx, Valor: R$ 0,00 ?


Tenho um sistema que o número de nota não é duplicado (e acredito que não possa ser mesmo, pois implica numa série de problemas de multas, fiscalização, etc) mas as faturas geradas para o recebimento dos valores das notas seguem essa normatização para saber num módulo de contas a receber os recebimentos do cliente.

Espero poder tê-lo ajudado,

Boa Sorte,


Daniel
HUBER.FABIO 18/12/2006 17:04:43
#190714
Caro amigo Daniel, sua opção de usar o comando val parcialmente deu certo mais ainda deu um probleminha, rs. alguns números de nota fiscal estão digitados com "." sendo assim esses registros ainda estão vindo. ex: expressão SQL >= 101 And <= 102 ok. ele ainda me traz o registro 101.486, tem alguma maneira de consertar isso também.
Página 1 de 2 [15 registro(s)]
Tópico encerrado , respostas não são mais permitidas