Access - Listado resumen

 
Vista:

Listado resumen

Publicado por Alex (4 intervenciones) el 30/08/2009 01:13:24
Me veo incapaz de resolver el siguiente problema, por muchas horas que le he echado. Mis conocimientos de ACCESS no llegan a tanto. Supongo que hay que "tocar" el código para resolverlo:

De un listado de productos NUMERADOS, agrupar y escribir una linea resumen con el NÚMERO INICIAL, EL FINAL Y LA CANTIDAD de CADA GRUPO CORRELATIVO.

Un Grupo es el formado por un registro donde coincide TIT1, TIT2 y EDICION. Si algun campo no coincide, habra que hacer otra linea.

Ejemplo:

DATOS:
TIT1 TIT2 EDIT NSERIE

ALFA D2 QW 5
ALFA D2 QW 6
ALFA D2 QX 10
BRAVO E3 TY 67
BRAVO E3 TY 68
BRAVO E4 TY 69
CHARLIE M1 UU 5
CHARLIE M2 UU 6
CHARLIE M3 UW 9
CHARLIE M3 UW 10

RESULTADO:
TIT1 TIT2 EDICION NSERIE-INI NSERIE-FIN CANTIDAD

ALFA D2 QW 5 6 2
ALFA D2 QX 10 10 1
BRAVO E3 TY 67 68 2
BRAVO E4 TY 69 69 1
CHARLIE M1 UU 5 5 1
CHARLIE M2 UU 6 6 1
CHARLIE M3 UW 9 10 2

Solamente hay TRES agrupaciones porque coincide TIT1, TIT2 y EDICION, y ademas sus NSERIE son CORRELATIVOS.

Gracias por vuestra ayuda y vuestro tiempo.
Un abrazo.
Alex.
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

RE:Listado resumen

Publicado por Antonio (83 intervenciones) el 06/09/2009 00:53:52
Hola,

Si el ejemplo que pones son los registros de una tabla puedes usar la consulta de selección siguiente

select tit1, tit2, edicion, min(nserie) as inicial, max(nserie) as final, count(nserie) as cantidad from datos group by tit1,tit2, edicion

No entiendo lo que quieres decir en tu ejemplo con "solo hay 3 agrupaciones por que sus nserie son correlativos" cuando has puesto siete, pero si lo que quieres decir es que si en lugar de tener ALFA D2 QW 6 tuvieras ALFA D2 QW 7 ya no hay que agruparlo entonces la consulta de arriba no te vale

Saludos
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

RE:Listado resumen

Publicado por Alex (4 intervenciones) el 06/09/2009 23:15:11
Gracias Antonio, pero la respuesta no es esa. Lástima que no se vea bien el ejemplo que puse porque se come los espacios.

Tu consulta falsea una serie incompleta y la convierte en completa (p. ej. 1,3,4 y 5 la resume del 1 al 5). aunque falte el 2.

Intento plantearlo de nuevo sin espacios y con guiones.

De un listado de productos NUMERADOS, agrupar y escribir una linea resumen con el NÚMERO INICIAL, EL FINAL Y LA CANTIDAD de CADA GRUPO CORRELATIVO.

Un Grupo es el formado por un registro donde coincide TIT1, TIT2 y EDICION. Si alguno de los 3 no coincide, habra que hacer otra linea.
Ejemplo:

DATOS:
TIT1-----------TIT2---------EDIT-----NSERIE

ALFA-----------D2----------QW------------5
ALFA-----------D2----------QW-------------6
ALFA-----------D2----------QX-----------10
BRAVO--------E3-----------TY-----------67
BRAVO--------E3-----------TY-----------68
BRAVO--------E4-----------TY-----------69
CHARLIE-----M1----------UU--------------5
CHARLIE-----M2----------UU--------------6
CHARLIE-----M3----------UW-------------9
CHARLIE-----M3----------UW------------10

RESULTADO:
TIT1---------TIT2------EDICION---NSERIE-INI---NSERIE-FIN---CANTIDAD

ALFA-----------D2-------QW-------------5------------------6------------------2
ALFA-----------D2-------QX--------------10---------------10-----------------1
BRAVO--------E3--------TY--------------67----------------68----------------2
BRAVO--------E4-------TY---------------69----------------69----------------1
CHARLIE-----M1------UU---------------5------------------5-----------------1
CHARLIE-----M2------UU---------------6------------------6-----------------1
CHARLIE-----M3------UW--------------9------------------10----------------2

Solamente hay TRES agrupaciones EN LAS QUE LA CANTIDAD ES 2 porque coincide TIT1, TIT2 y EDIT; Y ADEMÁS sus NSERIE son CORRELATIVOS.
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

RE:Listado resumen

Publicado por Antonio (83 intervenciones) el 08/09/2009 12:12:26
Hola de nuevo,

Con la select que te ponía en mi post anterior lo que consigues es la relación que incluyes bajo el titulo RESULTADO, que efectivamente como te decía no te vale si además necesitas que los NSERIE sean consecutivos.

Para obtener solo los tres resultados que me indicas la query es la misma pero añadiendo (HAVING) las condiciones que necesitas:

SELECT datos.tit1, datos.tit2, datos.edit, Min(datos.nserie) AS inicial, Max(datos.nserie) AS final, Count(datos.nserie) AS cantidad
FROM datos
GROUP BY datos.tit1, datos.tit2, datos.edit
HAVING Count(datos.nserie) > 1 and Count(datos.nserie) = (max(datos.nserie)-min(datos.nserie)+1)

Saludos
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

RE:Listado resumen

Publicado por Alex (4 intervenciones) el 08/09/2009 17:11:45
NO, no. No acabo de explicarme.

Yo decía:
"Solamente hay TRES agrupaciones porque coincide TIT1, TIT2 y EDICION, y ademas sus NSERIE son CORRELATIVOS. "

... pero TAMBIÉN necesito los resultados de los NO CORELATIVOS.

Así debe ser el RESULTADO:

TIT1---------TIT2------EDICION---NSERIE-INI---NSERIE-FIN---CANTIDAD

ALFA-----------D2-------QW-------------5------------------6------------------2
ALFA-----------D2-------QX--------------10---------------10-----------------1
BRAVO--------E3--------TY--------------67----------------68----------------2
BRAVO--------E4-------TY---------------69----------------69----------------1
CHARLIE-----M1------UU---------------5------------------5-----------------1
CHARLIE-----M2------UU---------------6------------------6-----------------1
CHARLIE-----M3------UW--------------9------------------10----------------2

Antonio, en tu solución, SÓLO están los correlativos.

De todas maneras, puede que me hayas dado el primer paso; voy a trabajar sobre ella, a ver si consigo sacar también los no correlativos.

Muchas 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

RE:Listado resumen

Publicado por Antonio (83 intervenciones) el 08/09/2009 18:04:57
Hola,

revisa lo que te decía en mi post anterior porque tienes las dos soluciones

Saludos
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

RE:Listado resumen

Publicado por Alex (4 intervenciones) el 08/09/2009 18:31:14
No, verás: con tu solución (y un pequeño cambio):

SELECT datos.TIT1, datos.TIT2, datos.EDIt, Min(datos.NSERIE) AS inicial, Max(datos.NSERIE) AS final, Count(datos.NSERIE) AS cantidad
FROM datos
GROUP BY datos.TIT1, datos.TIT2, datos.EDIt
HAVING (((Count(datos.NSERIE))=(Max([datos].[nserie])-Min([datos].[nserie])+1)));

... salen los correlativos y los únicos, pero NO funciona con estos datos:

DATOS:
TIT1-----------TIT2---------EDIT-----NSERIE

CHARLIE-----M1----------UU--------------1
CHARLIE-----M1----------UU--------------2
CHARLIE-----M1----------UU--------------5
CHARLIE-----M1----------UU--------------6

Y ahí me quedo....

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