Access - Consulta de agregados

 
Vista:

Consulta de agregados

Publicado por FernandoMur (4 intervenciones) el 12/06/2020 13:36:17
Tengo una consulta de agregados que quiero que acumule cadenas, me explico

Tabla

Campo 1 Campo 2 Campo3
C 10 Valor1
D 25 Valor2
C 3 Valor3
D 7 Valor4

Con la consulta de agregados quiero obtener (me agrupe por el Campo1 y me sume los campos 2 y 3, el 3 es cadena, por lo que añada los valores de texto)

C 13 Valor1Valor3
D 32 Valor2Valor4

Muchas gracias
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

Consulta de agregados

Publicado por Anonimo (3316 intervenciones) el 13/06/2020 10:42:44
No recuerdo formula que en un único paso genere dos agrupaciones diferentes, una matemática otra de texto.

.- La agrupación de datos comunes 'matemáticos' es la suma y no tiene mayor problema
.- La agrupación de datos comunes ('de texto') se la conoce como CONCATENACION y se tiene que generar de forma independiente

Nada impide que generados ambos datos (las sumas por una parte, las concatenaciones por otra) con sus resultados se puedan crear registros (que nada tendrán que ver con los originales excepto que se basan en ellos).

Notas:
Las sumas no supondrán un espacio extra (Access utiliza el mismo espacio para representar un cero o un billón), si el tipo de campo es el mismo y lo admite (byte, entero, entero largo doble ……)

Los textos sin embargo si pueden suponer un problema, pues los campo de texto (no un campo MEMO) tienen limite de caracteres

La concatenación de textos con sus separadores y espacios fácilmente puede supera ese limite
Es recomendable que al concatenar textos se verifique si el tamaño obtenido (por numero de caracteres) no distorsiona su contenido
(lo que sobrepase el máximo admitido en el campo será ignorado y se perderá).
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 Francisco
Val: 467
Plata
Ha disminuido 1 puesto en Access (en relación al último mes)
Gráfica de Access

Consulta de agregados

Publicado por Francisco (211 intervenciones) el 13/06/2020 19:44:05
Hola

Usando VBA se llega al resultado

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Function MultiValores(ByVal cod As String) As String
    Dim rst As Recordset
    Dim miSQL As String
    Dim misValores As String
 
    misValores = ""
    miSQL = "SELECT Campo3 FROM Tabla1 WHERE Campo1 = '" & cod & "'"
    Set rst = Application.CurrentDb.OpenRecordset(miSQL)
    If rst.RecordCount() > 0 Then
        Do While Not rst.EOF
            misValores = misValores & "," & rst!Campo3
            rst.MoveNext
        Loop
    End If
    Set rst = Nothing
 
    MultiValores = Mid$(misValores, 2)
 
End Function

luego por una consulta

1
2
3
4
5
6
SELECT
   Tabla1.Campo1,
   Sum(Tabla1.Campo2) AS Campo2,
   MultiValores([Campo1]) AS Campo3
FROM Tabla1
GROUP BY Tabla1.Campo1;


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

Consulta de agregados

Publicado por FernandoMur (4 intervenciones) el 13/06/2020 21:10:48
Muchas gracias por las respuestas. Voy a usar el código que me mandas a ver que tal. Un saludo y de nuevo 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

Consulta de agregados

Publicado por FernandoMur (4 intervenciones) el 13/06/2020 21:22:59
Tengo otra duda. Una vez realizada la consulta quiero combinar los resultados para hacer unas cartas con Word. Habría que guardar el resultado en una tabla temporal para luego combinar correspondencia con Word?

O guardando esta consulta

1
2
3
4
5
6
SELECT
   Tabla1.Campo1,
   Sum(Tabla1.Campo2) AS Campo2,
   MultiValores([Campo1]) AS Campo3
FROM Tabla1
GROUP BY Tabla1.Campo1;

podría acceder desde Word combinado correspondencia?

Nuevamente 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
Imágen de perfil de Francisco
Val: 467
Plata
Ha disminuido 1 puesto en Access (en relación al último mes)
Gráfica de Access

Consulta de agregados

Publicado por Francisco (211 intervenciones) el 13/06/2020 22:13:20
Una consulta es como un tabla, solo que no en este caso no es editable asi que la puedes llamar perfectamente desde otra aplicacion
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