Access - Ayuda con consulta avanzada

 
Vista:

Ayuda con consulta avanzada

Publicado por J.A. (1 intervención) el 02/04/2003 11:40:16
Hola amigos:
Ruego y agradecería enormemente ayuda para la elaboración de la siguiente consulta:
Estoy trabajando en una aplicación sobre Access 2000 para la gestión de décimos de lotería. En ella se recoge información de personas, décimos que les son entregados y si han sido abonados. La cuestión es la siguiente:
Querría realizar una consulta que ofreciera los décimos por persona, agrupados por serie como se explica en el resumen siguiente:
Si existe continuidad: p.e. Serie 8, Fracción 2 a la 5
Serie 15, Fracción 1 a la 10 (completa)
Si no existe continuidad: p.e. Serie 5, Fracciones 4 , 6... y 9
Si existe una sola fraccion: p.e. Serie 25, Fraccion 3

Un saludo
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 Alejandro

Ayuda con consulta avanzada

Publicado por Alejandro (4142 intervenciones) el 27/04/2023 20:30:00
Para realizar la consulta que estás buscando en Access 2000, puedes utilizar la función IIF junto con la cláusula GROUP BY para agrupar los décimos por persona y serie. A continuación te muestro un ejemplo de cómo hacerlo:

Supongamos que tienes una tabla llamada "Decimos" que contiene los siguientes campos:

- IDPersona: El ID de la persona que posee el décimo.
- Serie: El número de serie del décimo.
- Fraccion: El número de fracción del décimo.
- Abonado: Un valor booleano que indica si el décimo ha sido abonado o no.

La consulta que necesitas puede ser creada utilizando la siguiente sintaxis:

1
2
3
4
5
6
7
8
SELECT
    IDPersona,
    Serie & IIF(Min(Fraccion) = Max(Fraccion), ", Fracción " & Min(Fraccion), ", Fracciones " & Min(Fraccion) & " a " & Max(Fraccion)) AS Décimos,
    COUNT(*) AS TotalDécimos,
    SUM(IIF(Abonado,1,0)) AS DécimosAbonados,
    SUM(IIF(NOT Abonado,1,0)) AS DécimosNoAbonados
FROM Decimos
GROUP BY IDPersona, Serie & IIF(Min(Fraccion) = Max(Fraccion), ", Fracción " & Min(Fraccion), ", Fracciones " & Min(Fraccion) & " a " & Max(Fraccion))

En esta consulta, utilizamos la función IIF para determinar si los números de fracción están en una secuencia continua o no. Si lo están, la consulta muestra la serie y la fracción inicial y final separadas por un "a". Si no lo están, la consulta muestra la serie y las fracciones separadas por comas.

Además, utilizamos la cláusula GROUP BY para agrupar los décimos por persona y serie, y contabilizar el número total de décimos, el número de décimos abonados y el número de décimos no abonados.

Espero que esto te sea de ayuda.
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