Excluir registros que se encuentran en otra tabla en una consulta

publicado por: Anonymous
select idConceptoGastos,rtrim(NombreConcepto) 
from Concepto_Gastos 
where not idConceptoGastos in (select IdConcepto from Reporte_Formulacion) and IdPartidaGastos = '1' and Vigente = '1'
and not NombreConcepto = 'ALCOHOL DE 96°'and NombreConcepto like 'ALCOHOL DE%'
or NombreConcepto like 'CONCENTRADO LICOR%'or NombreConcepto like 'CONCENTRADO REFRESCO%'
or NombreConcepto like 'CONCENTRADO SIDRA%'or NombreConcepto like 'CONCENTRADO VINO%' or NombreConcepto like 'PULPA%'
order by NombreConcepto

Cuando realizo mi consulta de esta manera no me los excluye todos, solo 3 y son alcoholes y si pongo la subconsulta al ultimo solo me excluye una pula, por que tengo agregados 5 registros a la tabla de reporte formulacion, 3 alcoholes, un concentrado y una pulpa, si quito todo lo de los likes si me realiza correctamente la consulta y me excluye los 5 registros que estan en la segunda tabla

solución

Prueba con la consulta de esta forma:

 select idConceptoGastos,rtrim(NombreConcepto) 
 from Concepto_Gastos 
 where idConceptoGastos not in (select IdConcepto from Reporte_Formulacion) 
 and IdPartidaGastos = '1' 
 and Vigente = '1' 
 and NombreConcepto <> 'ALCOHOL DE 96°'
 and (
        NombreConcepto like 'ALCOHOL DE%' 
        or NombreConcepto like 'CONCENTRADO LICOR%'
        or NombreConcepto like 'CONCENTRADO REFRESCO%' 
        or NombreConcepto like 'CONCENTRADO SIDRA%'
        or NombreConcepto like 'CONCENTRADO VINO%' 
        or NombreConcepto like 'PULPA%' 
     )
 order by NombreConcepto
Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *