2 consultas SQL en una - mayor velocidad
Publicado por jorge1644 (2 intervenciones) el 20/02/2012 14:18:38
Hola a Todos
Tengo una tabla de pedidos y he de volver a ella para saber si estamos en el primer pedido o en el segundo ... etc.
En access funciona rapido en MS-SQL lentisimo.
El problema es que ataco 2 veces a la base de datos rs1 y rs2.
Se cual es el problema pero no como se soluciona.
¿
Alguien me puede decir como juntar ambas consultas en 1?
creo que sería la solución.
Este es el codigo:
''' EN LA TABLA FACTURAS RECORRO TODA LA TABLA
Set rs1 = ConData.Execute("Select * From Tabla_Facturas ")
Do While Not rs1.EOF
Response.Write " | " & rs2("Factura_Numero")
Response.Write " | " & rs2("Factura_Codigo_Cliente")
Response.Write " | " & rs2("Factura_Importe")
Response.Write " | " & rs2("Factura_Nombre_Comercial")
''' VUELVO A LA TABLA FACTURAS PARA BUSCAR FACTURAS ANTERIORES EN LA QUE ESTAMOS EN ESTE MOMENTO
ssqlrs2 = "Select distinct Factura_Numero From Tabla_Facturas Where Factura_Codigo_Cliente = '"&rs1("Factura_Codigo_Cliente")&"' And Factura_Numero <> '"&rs1("Factura_Numero")&"' And orderid < "&rs1("orderid")
Set rs2 = Server.CreateObject("adodb.RecordSet")
rs2.Open ssqlrs2,ConData,3,3
If Not rs2.EOF Then
''' HA HABIDO MAS FACTURAS ANTERIORMENTE
ComisionPorCiento = "5%"
Else
''' ES LA PRIMERA FACTURA A ESTE CLIENTE
ComisionPorCiento = "10%"
End If
rs2.Close
Set rs2 = Nothing
Response.Write " LA COMISION DE VENTA PARA EL COMERCIAL ES DEL: " & ComisionPorCiento
rs1.MoveNext
Loop
rs1.Close
Set rs1 = Nothing
Tengo una tabla de pedidos y he de volver a ella para saber si estamos en el primer pedido o en el segundo ... etc.
En access funciona rapido en MS-SQL lentisimo.
El problema es que ataco 2 veces a la base de datos rs1 y rs2.
Se cual es el problema pero no como se soluciona.
¿
Alguien me puede decir como juntar ambas consultas en 1?
creo que sería la solución.
Este es el codigo:
''' EN LA TABLA FACTURAS RECORRO TODA LA TABLA
Set rs1 = ConData.Execute("Select * From Tabla_Facturas ")
Do While Not rs1.EOF
Response.Write " | " & rs2("Factura_Numero")
Response.Write " | " & rs2("Factura_Codigo_Cliente")
Response.Write " | " & rs2("Factura_Importe")
Response.Write " | " & rs2("Factura_Nombre_Comercial")
''' VUELVO A LA TABLA FACTURAS PARA BUSCAR FACTURAS ANTERIORES EN LA QUE ESTAMOS EN ESTE MOMENTO
ssqlrs2 = "Select distinct Factura_Numero From Tabla_Facturas Where Factura_Codigo_Cliente = '"&rs1("Factura_Codigo_Cliente")&"' And Factura_Numero <> '"&rs1("Factura_Numero")&"' And orderid < "&rs1("orderid")
Set rs2 = Server.CreateObject("adodb.RecordSet")
rs2.Open ssqlrs2,ConData,3,3
If Not rs2.EOF Then
''' HA HABIDO MAS FACTURAS ANTERIORMENTE
ComisionPorCiento = "5%"
Else
''' ES LA PRIMERA FACTURA A ESTE CLIENTE
ComisionPorCiento = "10%"
End If
rs2.Close
Set rs2 = Nothing
Response.Write " LA COMISION DE VENTA PARA EL COMERCIAL ES DEL: " & ComisionPorCiento
rs1.MoveNext
Loop
rs1.Close
Set rs1 = Nothing
Valora esta pregunta


0