Problemas con el <> | SQL Server Performance Forums

SQL Server Performance Forum – Threads Archive

Problemas con el <>

La siguiente consulta tiene un problema, quiero listar todos los registros que esten activos, que pertenezcan al centro de costo 300 y que su bloque sea diferente a 140, su familia diferente a 1 y su operacion diferente a 1, lo ejecuto y no salen registros ya que en el resultado que deberia darme, por lo menos uno de ellos coincide que su campo es el valor que discrimino, es mas, todos tiene la operacion con 1, por eso no aparece, supuestamente la consulta excluiria a todos menos a los que coincidan. Select tickets.OrdeTrab_codi, tickets.OrdCort_codi, tickets.Esti_codi, tickets.Surt_codi,
tickets.Prendes_codi, tickets.colo_codi, tickets.tall_codi, tickets.paqu_codi,
tickets.cant_paqu, tickets.tick_codi, tickets.tick_leid, tickets.Secu_Oper,
tickets.Cenc_codi, tickets.Bloq_codi, tickets.Fami_codi, tickets.Oper_codi,
tickets.Estu_codi, tickets.tick_Tstd,
esti_desc, colo_desc, tall_desc, bloq_desc, oper_desc, cenc_desc
from tickets
inner join Estilos
on Tickets.Esti_codi = Estilos.Esti_codi
inner join bdcomun..Color color
on color.colo_codi = tickets.colo_codi
inner join bdcomun..tallas tallas on
tallas.tall_codi = tickets.tall_codi
inner join Bloques on
bloques.cenc_codi = tickets.cenc_codi and
bloques.bloq_codi = tickets.bloq_codi
inner join Operaciones on
operaciones.cenc_codi = tickets.cenc_codi and
operaciones.bloq_codi = tickets.bloq_codi and
operaciones.Fami_codi = tickets.Fami_codi and
operaciones.oper_codi = tickets.Oper_codi
inner join Cencos on cencos.cenc_codi = tickets.cenc_codi
where Tick_Elim=0 and tickets.cant_paqu>0
and Tickets.OrdCort_codi = ’04-004573′
and Tickets.Cenc_codi = ‘300’ and
Tickets.Bloq_codi <> ‘140’ and
Tickets.Fami_codi <> ‘1’ and
Tickets.Oper_codi <> ‘1’
Order by Tickets.Cenc_codi, Tickets.paqu_codi, Tickets.Secu_Bloq, Tickets.Secu_Oper Si cambio lo siguiente
Tickets.Bloq_codi <> ‘140’ and
Tickets.Fami_codi <> ‘1’ and
Tickets.Oper_codi <> ‘1’
por
(Tickets.Bloq_codi <> ‘140’ or
Tickets.Fami_codi <> ‘1’ or
Tickets.Oper_codi <> ‘1’)
sale todo tal como quiero, pero el problema es parametrizar mi store,ya que este funciona de acuerdo a lo que deseo y cambia el <> por = o por un in (‘140′,’120’) digamos, porque no sale conlo incial si la logica dice que seleccione todo menos lo que sea totalmente diferente a lo parametrizado?.
Muchas Gracias de antemano
Jesus Aguilar
Que pasaria si usas: NOT (
Tickets.Bloq_codi = ‘140’ and
Tickets.Fami_codi = ‘1’ and
Tickets.Oper_codi = ‘1’
) en lugar de: Tickets.Bloq_codi <> ‘140’ and
Tickets.Fami_codi <> ‘1’ and
Tickets.Oper_codi <> ‘1’ Tal vez sea mas facil de parametrizar.
Cuando te piden distinto usas el = pero negas todo con NOT.

]]>