SQL - Consultas - condiciones

 
Vista:
Imágen de perfil de Cristian
Val: 7
Ha aumentado su posición en 68 puestos en SQL (en relación al último mes)
Gráfica de SQL

Consultas - condiciones

Publicado por Cristian (33 intervenciones) el 28/11/2013 03:29:46
Hola a todos...
Tengo una tabla que almacena pagos mensuales de esta forma:

Nombre1 - ENERO
Nombre1 - FEBRERO
Nombre1 - MARZO
Nombre1 - MATRICULA
Nombre2 - ENERO
Nombre2 - FEBRERO
Nombre2 - MARZO
Nombre2 - MATRICULA

Ahora bien, lo que necesito es mostrar un listado de los impagos, por ejemplo si la persona pago todo menos JULIO Y AGOSTO, bueno mostrar eso que en definitiva no esta ingresado.

Espero haber sido claro y me puedan ayudar.

Saludos
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 xve
Val: 135
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

Consultas - condiciones

Publicado por xve (284 intervenciones) el 28/11/2013 08:10:01
Hola Cristian, los meses esta en texto? es decir, entiendo que hay dos campos, uno que sera el nombre y otro el mes, no?
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
Imágen de perfil de Cristian
Val: 7
Ha aumentado su posición en 68 puestos en SQL (en relación al último mes)
Gráfica de SQL

Consultas - condiciones

Publicado por Cristian (33 intervenciones) el 28/11/2013 15:27:16
Hola xve... gracias por responder.
Si en realidad hay dos campos:

ncuota mes
1 MARZO
2 ABRIL
3 MAYO
4 JUNIO
5 JULIO
6 AGOSTO
7 SEPTIEMBRE
8 OCTUBRE
9 NOVIEMBRE
10 DICIEMBRE
11 MATRICULA 1/2
12 MATRICULA 2/2

En la tabla pagos figuran solo los meses pagos y yo quiero hacer un reporte con los impagos o sea que no figuran en la tabla pagos.

Me explico ??? Cualquier cosa me avisas.

Un saludo y gracias
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
Imágen de perfil de xve
Val: 135
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

Consultas - condiciones

Publicado por xve (284 intervenciones) el 28/11/2013 16:48:42
Hola Cristian, en la tabla no tienes el valor del año?

Si no dispones del valor del año, no se muy bien como hacerlo...
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
Imágen de perfil de Cristian
Val: 7
Ha aumentado su posición en 68 puestos en SQL (en relación al último mes)
Gráfica de SQL

Consultas - condiciones

Publicado por Cristian (33 intervenciones) el 28/11/2013 17:22:02
Hola xve.... no se a que te refieres exactamente con el valor del año, si hay un campo año que solo almacena eso

ncuota mes ano
1 MARZO 2013
2 ABRIL 2013




a eso te refieres ?
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
Imágen de perfil de xve
Val: 135
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

Consultas - condiciones

Publicado por xve (284 intervenciones) el 28/11/2013 21:42:42
Si exacto, a eso me refiero... si no tengo el valor año, como se si se ha pagado el mes de marzo de este año? podría ser que fuera un pago del año pasado, no?

La única manera que se me ocurre con una consulta sql, es juntar 12 consultas... de seguro tiene que haber una manera mejor, pero no se me ocurre...

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
SELECT "Enero" as mes,
CASE WHEN count(*)=1 THEN descripcion ELSE -1 END as Meses
FROM test WHERE mes="ENERO" AND ano=2013
 
union all
 
SELECT "Febrero" as mes,
CASE WHEN count(*)=1 THEN descripcion ELSE -1 END as Meses
FROM test WHERE mes="FEBRERO" AND ano=2013
 
union all
 
SELECT "MARZO" as mes,
CASE WHEN count(*)=1 THEN descripcion ELSE -1 END as Meses
FROM test WHERE mes="MARZO" AND ano=2013
 
union all
 
SELECT "ABRIL" as mes,
CASE WHEN count(*)=1 THEN descripcion ELSE -1 END as Meses
FROM test WHERE mes="ABRIL" AND ano=2013
 
union all
 
SELECT "MAYO" as mes,
CASE WHEN count(*)=1 THEN descripcion ELSE -1 END as Meses
FROM test WHERE mes="MAYO" AND ano=2013
 
union all
 
SELECT "JUNIO" as mes,
CASE WHEN count(*)=1 THEN descripcion ELSE -1 END as Meses
FROM test WHERE mes="JUNIO" AND ano=2013
 
union all
 
SELECT "JULIO" as mes,
CASE WHEN count(*)=1 THEN descripcion ELSE -1 END as Meses
FROM test WHERE mes="JULIO" AND ano=2013
 
union all
 
SELECT "AGOSTO" as mes,
CASE WHEN count(*)=1 THEN descripcion ELSE -1 END as Meses
FROM test WHERE mes="AGOSTO" AND ano=2013
 
union all
 
SELECT "SEPTIEMBRE" as mes,
CASE WHEN count(*)=1 THEN descripcion ELSE -1 END as Meses
FROM test WHERE mes="SEPTIEMBRE" AND ano=2013
 
union all
 
SELECT "OCTUBRE" as mes,
CASE WHEN count(*)=1 THEN descripcion ELSE -1 END as Meses
FROM test WHERE mes="OCTUBRE" AND ano=2013
 
union all
 
SELECT "NOVIEMBRE" as mes,
CASE WHEN count(*)=1 THEN descripcion ELSE -1 END as Meses
FROM test WHERE mes="NOVIEMBRE" AND ano=2013
 
union all
 
SELECT "DICIEMBRE" as mes,
CASE WHEN count(*)=1 THEN descripcion ELSE -1 END as Meses
FROM test WHERE mes="DICIEMBRE" AND ano=2013

Esta consulta, es un poco manual, pero te devolverá todos los meses con un 1 o un -1, que quiere decir que ha pagado o no ha pagado.

Coméntanos si te sirve, ok?
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
Imágen de perfil de Cristian
Val: 7
Ha aumentado su posición en 68 puestos en SQL (en relación al último mes)
Gráfica de SQL

Consultas - condiciones

Publicado por Cristian (33 intervenciones) el 02/12/2013 00:24:35
Hola xve... perdon la demora. No lo pude hacer funcionar.

Vere como lo logro hacer andar..... si se me corren los tiempos lo hare con una tabla temporal...

Gracias y perdon las molestias.
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
Imágen de perfil de xve
Val: 135
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

Consultas - condiciones

Publicado por xve (284 intervenciones) el 02/12/2013 07:32:40
Hola Cristian, pero te da algún error? o el resultado que te devuelve es incorrecto?
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
Imágen de perfil de Cristian
Val: 7
Ha aumentado su posición en 68 puestos en SQL (en relación al último mes)
Gráfica de SQL

Consultas - condiciones

Publicado por Cristian (33 intervenciones) el 02/12/2013 19:43:23
Hola xve.... en realidad no me deja ingresar en vb una sentencia tan larga, ahi me tira el error
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
Imágen de perfil de xve
Val: 135
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

Consultas - condiciones

Publicado por xve (284 intervenciones) el 02/12/2013 21:54:58
Vaya...., no sabia que hubiera un limite para una consulta sql...
La otra opción, es crear un procedimiento almacenado, aunque no se si te liara mucho...
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
Imágen de perfil de Cristian
Val: 7
Ha aumentado su posición en 68 puestos en SQL (en relación al último mes)
Gráfica de SQL

Consultas - condiciones

Publicado por Cristian (33 intervenciones) el 06/12/2013 21:57:05
Hola xve...
La verdad que se me ha complicado no solo por eso, sino que en la tabla pagos puede que una persona no exista porque nada pago y ahi seria otra cosa a verificar.....

La verdad no se como lo voy a hacer
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