SQL Server - Listar los numeros que no estan en un rango

   
Vista:

Listar los numeros que no estan en un rango

Publicado por Pedro prlink2008@gmail.com (9 intervenciones) el 23/07/2013 22:13:03
Saludos, tengo una duda, estoy realizando un reporte contable y tengo el sgte problema
Mi reporte lista los comprobantes emitidos por un determinado periodo, asi julio tiene 16 comprobantes, mayo 6, enero 10,etc. Mi reporte es como sigue

Proveedor NroComprob
CC Capricornio 000012
SA Virgo 000015
Juan Perez 000016
Silvia Reyes 000019


Bueno mas o menos asi es mi reporte, el caso es que me solitican que deben aparecer los numeros que han sido anulados tales como el 13,14,17,18. Es decir deben quedar asi

Proveedor NroComprob
CC Capricornio 000012
ANUL 000013
ANUL 000014
SA Virgo 000015
Juan Perez 000016
ANUL 0000017
ANUL 0000018
Silvia Reyes 000019

Es decir necesito un procedimiento para listar los numeros que no estan en el intervalo de 12-19 en mi base de datos como el 13,14,17,18, sin embargo no se como hacerlo y esa es mi duda

Agradezco anteladamente su respuesta

Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Isaias Islas Gonzalez

Listar los numeros que no estan en un rango

Publicado por Isaias Islas Gonzalez (3186 intervenciones) el 23/07/2013 22:24:37
"Dame una base y movere al mundo"

Crea una tabla con los numeros del 12-19, haces un JOIN y todos los que no esten, los reportas como ANUL
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Listar los numeros que no estan en un rango

Publicado por OSCAR JAVIER (4 intervenciones) el 26/07/2013 23:36:29
Hola lo mas facil es incluir un flag en la tabla de los comprobantes es decir una columna con el estado del comprobante que indique cuando esta anulado y cuando esta activo eso es lo mas sano en el diseño y modelacion de los datos asi te evitaras inventar cosas que a la final te causaran dolores de cabeza. te remito ejemplo:

Declare @tblRecibos Table(
Proveedor Varchar(60),
Comprobante Varchar(30),
Estado Varchar(10))

Insert Into @tblRecibos(Proveedor,Comprobante,Estado) Values('CC Capricornio','000012','Activo')
Insert Into @tblRecibos(Proveedor,Comprobante,Estado) Values('SA Virgo','000015','Activo')
Insert Into @tblRecibos(Proveedor,Comprobante,Estado) Values('Juan Perez','000016','Activo')
Insert Into @tblRecibos(Proveedor,Comprobante,Estado) Values('Silvia Reyes','000019','Activo')
Insert Into @tblRecibos(Proveedor,Comprobante,Estado) Values('ANUL','000013','Anulado')
Insert Into @tblRecibos(Proveedor,Comprobante,Estado) Values('ANUL','000014','Anulado')
Insert Into @tblRecibos(Proveedor,Comprobante,Estado) Values('ANUL','0000017','Anulado')
Insert Into @tblRecibos(Proveedor,Comprobante,Estado) Values('ANUL','0000018','Anulado')

Select *
From @tblRecibos
Where Estado In('Activo')

Select *
From @tblRecibos
Where Estado In('Anulado')

El reporte asi seria mas facil por que solo los filtras por el estado del comprobante.
Corre este consulta en SQL Server..
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar