adilson luis basilio Postado 23 Fevereiro Compartilhar Postado 23 Fevereiro Ola boa tarde, tenho uma tabela definida como regras de tributacao que uso para definir regras de dados de tributacao sendo po r ncm,empresa,uf,tipopessoa, etc vou exemplificar aqui pra um campo ( UF ) criou as regras por estado : UF | DESCRICAO PR - Regra do Parana SC- Regra de Santa Catarina XX- Regra para qualquer/todos UF -- uso esse registro para casos de mesma regras para varios estados. ( evita ter q. digitar a mesma regra N vezes ) clausula where esta escrita ( uf = :A or uf='XX' ) para uma busca no estado MT ( UF='MT' or UF='XX' ) ele traz o registro XX como deve ser , por que ? , pois nao tem regra para aquela UF , pega regra XX para uma busca no estado PR ( UF='PR' or UF='XX') ele traz os registros PR e XX , mas preciso q. traga somente PR se a busca fosse somente por UF um order by resolveria pois o registro XX ficaria sempre no final, mas a busca envolve outros campos select a.* from nota_regratributacao a where a.ncm= '63090010' and ( a.id_empresa = 1 or a.id_empresa = 0 ) and ( a.uf = 'PR' or a.uf = 'XX' ) and ( a.id_produto = 1364 or a.id_produto = 0 ) and ( a.tipo_pessoa = '0' or a.tipo_pessoa = 0 ) and ( a.tipo_consumidor = '9' or a.tipo_consumidor = 0 ) and ( a.tipo_regime = '0' or a.tipo_regime = 0 ) esse é um exemplo Resumindo a obra : eu precisa q. o where me retorne quando UF = true nao retorne UF=XX, é possivel na mesma clausula where ? Link para o comentário Compartilhar em outros sites More sharing options...
Consultores Renato Rubinho Postado 24 Fevereiro Consultores Compartilhar Postado 24 Fevereiro Se você precisa só de um registro, prevalecendo o da UF, use orderby e pegue o primeiro, pois as UF serão listadas sempre antes do XX SELECT FIRST 1 ... ORDER BY A.UF Link para o comentário Compartilhar em outros sites More sharing options...
Recommended Posts
Crie uma conta ou entre para comentar
Você precisar ser um membro para fazer um comentário
Criar uma conta
Crie uma nova conta em nossa comunidade. É fácil!
Crie uma nova contaEntrar
Já tem uma conta? Faça o login.
Entrar Agora