Tengo que realizar un informe, en que la información esta almacenada en varias tablas, en este caso en 3, Usuario, Usr_Cnt., Cuentas
El resultado del informe deberia ser el siguente
Mostrar un listado de los usuarios con las Cuentas que posee
Algo parecido a esto:
Paco - BBV
Paco - Banesto
Paco - Bancaja
Luis - Bancaja
Andres - BBV
Andres - CAM
Juan -Cam
Juan -BBV
Juan -Bancaja
Realizar una consulta que me devuelta estos datos, en sencillo, de echo, no es el problema, lo que quiero es q no aparezcan los nombre de los usuarios repetidos, y es lo que no se hacer, o mejor dicho, no se si se puede hacer con una solo consulta.
Para que muestre algo parecido a lo siguiente:
Paco -BBV
-Banesto
-Bancaja
Luis -Bancaja
Andres -BBV
-CAM
Juan -Cam
-BBV
-Bancaja
Una posible solución, la he encontrado haciendo 2 consultas, y realizando 2 bucles, la primera consulta recorre la tabla de Usuarios, y la segunda consulta, recorre las tabla de Usr_Cnt., Cuentas, con el indice del Usuario, para buscar coincidencias: el codigo seria algo parecido a esto
SQLUsuarios= "SELECT * FROM Usuario"
Set bd = bdconn.Execute(SQLUsuarios)
while (not bd.eof)
tmp_ IdUsuario =bd("IdUsuario ")
Response.write bdCuentas(“NombreUsuario”)
SqlCuentas = "SELECT * FROM Cuentas, Usr_Cnt WHERE Cuentas.IdCuenta= Usr_Cnt. IdCuenta AND Usr_Cnt. IdUsuario="&tmp_ IdUsuario &"
Set bdCuentas = bdconn.Execute(SqlCuentas)
while (not bdCuentas.eof)
Response.write bdCuentas(“NombreCuentas”)
Response.write “<br>”
bdCuentas.MoveNext()
wend
bd.MoveNext()
wend
La pregunta, despues de todo este rollo, es??
Como optimizar este informe???? Suponiendo, que el numero de Usuarios es muy alto, 5000, y en numero de cuentas alrededor de 1000, el coste de este algoritmo es altissimo!!,