Registros de un periodo

13/01/2006 - 16:23 por aventurero | Informe spam
Buenas amigos del foro.

Tengo una Tabla con las siguientes columnas

TblVigencias

formato (unico)
id_cliente (muchos)
placaveh (muchas)
fecha_inicio
fecha_fin

El vehículos (placaveh) solo debe tener un formato vegente.
Se genera un grupo de vencimientos para meses posteriores para generar
llamadas de aviso (sin problemas).

Para el vencimiento utilizo:
Select * from TblVigencias where convert(varchar(8),fecha_fin,112) between
'20040112' and '20041231'

Necesito un reporte con los vehiculos que no renovaron la licencia.
El cliente solo debe tener un vencimiento.

Gracias anticipadas

Atentamente,


Aventurero

Preguntas similare

Leer las respuestas

#1 Alejandro Mesa
13/01/2006 - 18:03 | Informe spam
aventurero,

Cual es el tipo de datos de las columnas?

Select * from TblVigencias where convert(varchar(8),fecha_fin,112) between
'20040112' and '20041231'



Select *
from TblVigencias
where fecha_fin between '20040112' and '20041231'

No necesitas hacer la conversion. No es bueno manipular la columna por la
que filtras.

Necesito un reporte con los vehiculos que no renovaron la licencia.
El cliente solo debe tener un vencimiento.



Cual es el criterio para saber si una licencia fue renovada o no?

Pudieras postear la estructura de las tablas, datos de ejemplos y resultado
esperado?


AMB

"aventurero" wrote:

Buenas amigos del foro.

Tengo una Tabla con las siguientes columnas

TblVigencias

formato (unico)
id_cliente (muchos)
placaveh (muchas)
fecha_inicio
fecha_fin

El vehículos (placaveh) solo debe tener un formato vegente.
Se genera un grupo de vencimientos para meses posteriores para generar
llamadas de aviso (sin problemas).

Para el vencimiento utilizo:
Select * from TblVigencias where convert(varchar(8),fecha_fin,112) between
'20040112' and '20041231'

Necesito un reporte con los vehiculos que no renovaron la licencia.
El cliente solo debe tener un vencimiento.

Gracias anticipadas

Atentamente,


Aventurero



Respuesta Responder a este mensaje
#2 aventurero
13/01/2006 - 21:39 | Informe spam
Gracias Alejandro por contestar. Muy valiosas sus observaciones; estas
conversiones de fechas la he realizado algunas veces sobre todo para generar
archivos planos.

Respondiendo
Cual es el tipo de datos de las columnas?



TblVigencias

formato (unico) bigint
id_cliente (muchos) bigint
placaveh (muchas) varchar(6)
fecha_inicio smalldatetime
fecha_fin smalldatetime

Cual es el criterio para saber si una licencia fue renovada o no?



TblVigencias.fecha_fin > getdate() para placaveh. O que la fecha de hoy
esté entre fecha_inicio y fecha_fin

Es decir, cada vehículo debe renovar la licencia y se le asigna un FORMATO
con número único.
En TblVigencias están todas las licencias vencidas y por vencerse de cada
vehículo (es un archivo también histórico).

Los datos de Vehiculos relacionado con placaveh está en una tabla y Clientes
relacionado con id_cliente

Ejemplo:
TblVigencias
formato placa id_cliente f inicio f
final
160000 SC2334 34 01/01/2002 31/12/2002
170000 SC2334 34 01/01/2003 31/12/2003
180000 SC2334 34 01/01/2004 31/12/2004
180999 SC2334 34 01/01/2005 31/12/2005
160020 YY2334 80 01/01/2002 31/12/2002
170033 YY2334 80 01/01/2003 31/12/2003
180010 YY2334 80 01/01/2004 31/12/2004
180900 YY2334 80 01/01/2005 31/12/2005
198730 YY2334 80 01/01/2006 31/12/2006
etc

Necesito conocer todos los vehiculos que se les venció la licencia y que no
renovaron.
El resultado de la consulta debe ser los registros con la
el último formato: 180999
placa: SC2334,
fecha de vencimiento ultima: 31/12/2005
el último propietario con id_cliente: 34
más los datos del cliente y del vehiculo (de las tablas Clientes y
Vehiculos)
Clientes.Nombre
Clientes.Direccion
Clientes.telefono
Clientes.ciudad
Vehiculos.marca
Vehiculos.añomodelo
Vehiculos.lineafabrica

. y todos los registros que cumplan con esta condición

Gracias nuevamente.

Atentamente,


Aventurero
Respuesta Responder a este mensaje
#3 Alejandro Mesa
14/01/2006 - 20:36 | Informe spam
aventurero,

Te das cuenta la diferencia entre el primer posting y el ultimo?. Ahora
podemos tener una mejor idea de lo que tienes y lo que deseas obtener.

Trata:

select *
from TblVigencias as t1
where
fecha_fin <= getdate()
and not exists (
select *
from TblVigencias as t2
where
t2.id_cliente = t1.id_cliente
t2.placaveh = t1.placaveh
t2.fecha_fin > t1.fecha_fin
)
go

Selecciona todas las filas donde la [fecha_fin] sea menor que getdate() y
que no exista una fila para el mismo cliente y placa, con [fecha_fin] mayor a
la [fecha_fin] de la fila corriente.


AMB

"aventurero" wrote:

Gracias Alejandro por contestar. Muy valiosas sus observaciones; estas
conversiones de fechas la he realizado algunas veces sobre todo para generar
archivos planos.

Respondiendo
>Cual es el tipo de datos de las columnas?

TblVigencias

formato (unico) bigint
id_cliente (muchos) bigint
placaveh (muchas) varchar(6)
fecha_inicio smalldatetime
fecha_fin smalldatetime

>Cual es el criterio para saber si una licencia fue renovada o no?

TblVigencias.fecha_fin > getdate() para placaveh. O que la fecha de hoy
esté entre fecha_inicio y fecha_fin

Es decir, cada vehículo debe renovar la licencia y se le asigna un FORMATO
con número único.
En TblVigencias están todas las licencias vencidas y por vencerse de cada
vehículo (es un archivo también histórico).

Los datos de Vehiculos relacionado con placaveh está en una tabla y Clientes
relacionado con id_cliente

Ejemplo:
TblVigencias
formato placa id_cliente f inicio f
final
160000 SC2334 34 01/01/2002 31/12/2002
170000 SC2334 34 01/01/2003 31/12/2003
180000 SC2334 34 01/01/2004 31/12/2004
180999 SC2334 34 01/01/2005 31/12/2005
160020 YY2334 80 01/01/2002 31/12/2002
170033 YY2334 80 01/01/2003 31/12/2003
180010 YY2334 80 01/01/2004 31/12/2004
180900 YY2334 80 01/01/2005 31/12/2005
198730 YY2334 80 01/01/2006 31/12/2006
. etc

Necesito conocer todos los vehiculos que se les venció la licencia y que no
renovaron.
El resultado de la consulta debe ser los registros con la
el último formato: 180999
placa: SC2334,
fecha de vencimiento ultima: 31/12/2005
el último propietario con id_cliente: 34
más los datos del cliente y del vehiculo (de las tablas Clientes y
Vehiculos)
Clientes.Nombre
Clientes.Direccion
Clientes.telefono
Clientes.ciudad
Vehiculos.marca
Vehiculos.añomodelo
Vehiculos.lineafabrica

.. y todos los registros que cumplan con esta condición

Gracias nuevamente.

Atentamente,


Aventurero



email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida