Ver Mensaje Individual
  #1 (permalink)  
Antiguo 12/01/2012, 14:46
amg39
 
Fecha de Ingreso: febrero-2011
Mensajes: 29
Antigüedad: 13 años, 2 meses
Puntos: 0
Una orden SQL SUM() que no suma

Buenas tardes. A ver si sois tan amables de hacerme que esto rule.
En mi BD tengo, entre otras, dos tablas: Tabla "Denominacion" donde están los nombres de las acciones y otros valores (fondos, bono, etc). Primero he hecho un filtro porque sólo me interesa conocer las acciones que tiene cada titular. Y otra tabla, "Operaciones" donde figuran las acciones que de dichos valores van comprando los "titulares". Mi idea es hacer un ciclo for-next que recorra la tabla (subtabla, para ser riguroso) de las acciones y dentro de este ciclo ir a la tabla "Operaciones" y ver cuántas (el número de títulos) acciones de cada denominación tiene un titular que hemos escrito en un TextBox1, aunque aquí por hacerlo más sencillo lo he escrito "a brazo", "AMM".
El ciclo sí se hace y aparece el nombre de los valores (acciones) pero me da de suma para todas las acciones 0.
Es decir que tengo un listado tal que así:
Iberdrola 0
Telefónica 0 y así para todos; pero eso está mal porque para eso lo tengo a la vista en la BD.

'Ciclo de las Denominaciones de las acciones
sql1 = "SELECT * from Denominacion WHERE clase = 'Acciones' ORDER BY denominacion"
Dim da1 As New OleDb.OleDbDataAdapter(sql1, con)
da1.Fill(ds1, "FiltDenom") 'FiltroDenom es el DataSet que contiene los nombres de todas las acciones
con.Close()
Dim i As Integer
'¿Cuántas denominaciones distintas de acciones hay?
'Aqui he introducido una función que me da este nro: cuantasaccionesdistintashay
Dim posicion As Integer
Dim total As Integer = 0
Dim inc As Integer = 1
Dim c1 As String 'Para representar el nombre de cada denominación de acciones

For i = 0 To cuantasaccionesdistintashay() - 1 'Ciclo de las distintas acciones. Cada rotación es de una denominación distinta de acciones
query2 = "SELECT ISNULL(SUM(nrotitulos), 0) As total FROM Operaciones WHERE Operaciones.denominacion = denominacion.denominacion and Ltrim(Operaciones.titular) = 'AMM'" ' " & TextBox1.Text & "'"

MsgBox(total) 'Lo he puesto para observar durante la realización; en efecto, siempre ceros.
c1 = ds1.Tables("FiltDenom").Rows(i).Item("denominacion ") 'Nombre de la acción)
e.Graphics.DrawString(c1, New Font("Arial", 10), Brushes.Black, 200, posicion) ' OK
e.Graphics.DrawString(total, New Font("Arial", 10), Brushes.Black, 360, posicion) 'MAL
posicion = posicion + 30
Next

¿Qué he hecho mal? Muchas gracias.