Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Ayuda en esta consulta

Estas en el tema de Ayuda en esta consulta en el foro de Bases de Datos General en Foros del Web. Hola gente necesito algunas ideas para esta consulta, no pretendo que me la hagan solo que me orienten como podria hacer ya que vengo unos ...
  #1 (permalink)  
Antiguo 03/12/2008, 21:56
 
Fecha de Ingreso: junio-2008
Mensajes: 119
Antigüedad: 15 años, 10 meses
Puntos: 1
Ayuda en esta consulta

Hola gente necesito algunas ideas para esta consulta, no pretendo que me la hagan solo que me orienten como podria hacer ya que vengo unos dias pensando en hacerla y me estoy volviendo loco .

Consulta: Cuento con una base de datos Microsoft Acces y la estructura de la UNICA tabla que tengo es esta...



Cuenta con los datos respectivos del cliente y las cuotas a pagar desde 1..11, el 0 lo uso para ponerle T si termino de pagar todas las cuotas o ponerle B si esta de baja, lo que quiero saber es a partir de un mes seleccionado (la estructura de los mes es 1/8 enero 2008, 2/8 febrero 2008, etc) a que usuario no se le cobra desde ese mes...



Por ejemplo con estos datos poniendo el mes 4/8, nos devolveria estas 3 tuplas por que en la ultima cota paga fue ese mes y no esta terminada.

En resumen se tendria que buscar la ultima cuota no vacia y ver si es 4/8 (en este caso). con el tema de si esta terminada es facil solo tendriamos que fijarnos en la columna 0.

Bueno espero que hayan entendido...
Saludos...
  #2 (permalink)  
Antiguo 04/12/2008, 03:20
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Ayuda en esta consulta

Eres conciente que eso esta mal diseñado?

La estructura para eso seria


TablaSocios

Nº DE SOCIOS
Datos del socio

TablaPagos
FechaPago
Nº DE SOCIOS

Con esa estructura seria facil obtener lo que buscas...seria relativamente facil normalizar creando la tabla pagos y haciendo una seride de insert into con los datos de la que tienes.

Con la estructura que presentas y el asistente de consultas de access por supuesto que no lo conseguiras... entrando el sql a mano la estructura de la consulta resultante será "catedralicia" por llamarle de alguna manera....

Código:
Select * 
   FROM Tutabla
   WHERE TuTabla.nsocio 
               in (Select SubConsulta2.nsocio
                      FROM
                        (Select SubConsulta.nsocio, 
                            MAX(SubConsulta.Pago) as MaxPago
                            FROM
                              (Select t2t.nsocio,
                               t2t.1 as pago
                               from tutabla  as t2t 
                               where t2t.0 is null 
                               and t2t.1 is not null
                               UNION ALL
                               Select t2t.nsocio,
                               t2t.2 as pago
                               from tutabla as t2t 
                               where t2t.0 is null 
                               and t2t.2 is not null
                               UNION ALL
                               ....
                               UNION ALL
                               Select t2t.nsocio, 
                               t2t.11 as pago 
                               from tutabla as t2t 
                               where t2t.0 is null 
                               and t2t.11 is not null) as SubConsulta
                               group by SubConsulta.nsocio) as Subconsulta2
                               WHERE SubConsulta2.MaxPago='4/8');

Vaya pasada creo que funcionaria pero lo intentas tu....



Uy!!!! las fechas (mes año) son textos!!! No funcionará (4/8 > 11/8)

NORMALIZA LA TABLA, convierte los textos a fechas 4/8 => #01/04/2008#...

Quim

Última edición por quimfv; 04/12/2008 a las 03:30
  #3 (permalink)  
Antiguo 04/12/2008, 13:47
 
Fecha de Ingreso: junio-2008
Mensajes: 119
Antigüedad: 15 años, 10 meses
Puntos: 1
De acuerdo Respuesta: Ayuda en esta consulta

Obvio que soy consciente que esta mal diseñada, pero asi me la trajo el cliente y seria otro presupuesto normalizarla..

Con el tema de la consulta la voy a probar gracias por tu opinion


Saludosss...
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:18.