ASP - 2 consultas SQL en una - mayor velocidad

 
Vista:

2 consultas SQL en una - mayor velocidad

Publicado por jorge1644 (1 intervención) el 20/02/2012 14:08:51
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
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

2 consultas SQL en una - mayor velocidad

Publicado por Santos Pairazamán Flores (415 intervenciones) el 03/05/2012 23:30:12
select F.CodFactura,F.CodCliente,F.Importe,F.Comercial,
(select Count(*) from tFactura Fa where fa.codCliente=F.CodCliente) as 'Existe'
from tnorma F

Luego preguntas por el campo existe que te muestra la cantidad de facturas para ese cliente

if rs("existe")>0 then
ComisionPorCiento = "5%"
else
ComisionPorCiento = "10%"
end if


Espero t sirva

Hasta Pronto.
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