Tema: Suma con SQL
Ver Mensaje Individual
  #4 (permalink)  
Antiguo 15/01/2012, 08:39
Uran
 
Fecha de Ingreso: enero-2012
Mensajes: 49
Antigüedad: 12 años, 10 meses
Puntos: 4
Respuesta: Suma con SQL

Perdoname, pero esque no termino de entender la estructura de la bd ni la operación que quieres hacer...

Tablas:
  • operaciones (denominaciones, titulares, nrotyitulos, ...)
  • denominacion (denominacion, clases, ...)

Ésto es lo que yo he entendido, lo que no cuadra con tu cosulta sql (y puede que por eso te de 0 de resutlado):

Código vb:
Ver original
  1. sql2 = "SELECT SUM(nrotitulos) AS totalacc FROM operaciones " _
  2.         & "WHERE (titular='AMM') AND (denominacion ='" & c1 & "' "

Si te fijas en el AND, según el marco que entiendo tienes en tu BD debería ser:

Código vb:
Ver original
  1. sql2 = "SELECT SUM(nrotitulos) AS totalacc FROM operaciones "_
  2.         & "WHERE (titular='" & titular & "') AND (denominaciones = '" & c1 & "' "

El campo se llama denominaciones en la tabla operaciones, no denominacion. Además te he puesto el titular por variable, porque así puedes usar la función para distintos titulares según la variable.

Al margen de todo esto, lo que yo intentaba decirte, es que no basta con crear una cadena de texto con el código SQL, también tienes que almacenar el resultado y actuar en consecuencia

Yo veo en tu código el "sql = ..." pero no veo qué haces después con la sentencia sql, ¿no la vuelves a llamar?

Si, por ejemplo, te declaras un Recordset y almacenas en él el resultado de la búsqueda del sql2 quedaría así:

Código vb:
Ver original
  1. Dim db As Database
  2. Dim rst As DAO.Recordset
  3.  
  4. Set db = CurrentDb()
  5. sql2 = "SELECT SUM(nrotitulos) AS totalacc FROM operaciones " _
  6.        & "WHERE (titular='" & titular & "') AND (denominaciones='" & c1 & "' "
  7. Set rst = db.OpenRecordset(sql2, dbReadOnly)
  8.  
  9. If Not (rst.BOF And rst.EOF) Then
  10.         MsgBox("Total suma de numero de titulos: " & rst.totalacc)
  11. Else
  12.         MsgBox ("Tabla no encontrada o no hay operaciones para sumar.")
  13. End If
  14.  
  15. Set rst = Nothing
  16. Set db = Nothing

Si no me he explicado bien en algo, o no tengo bien el planteamiento dímelo.

De todas formas el statement SQL SUM() te tiene que funcionar (¡dando por hecho que el nrotitulos sea de tipo numero!).

Prueba el código y nos cuentas qué tal te ha ido.