Foros del Web » Programando para Internet » ASP Clásico »

Duda sobre comparaciones

Estas en el tema de Duda sobre comparaciones en el foro de ASP Clásico en Foros del Web. Hola a todos, tengo una duda que no se solucionarla,a ver,tengo una BD con los datos CARRERA,CORREDOR,POSICION (que ha conseguido en la carrera) y FECHA ...
  #1 (permalink)  
Antiguo 12/11/2004, 02:37
 
Fecha de Ingreso: septiembre-2003
Mensajes: 24
Antigüedad: 21 años, 7 meses
Puntos: 0
Duda sobre comparaciones

Hola a todos,

tengo una duda que no se solucionarla,a ver,tengo una BD con los datos CARRERA,CORREDOR,POSICION (que ha conseguido en la carrera) y FECHA (de la carrera),bueno pues lo que me gustaría hacer es que, después de recoger los valores de 2 corredores con un request.form,comparar las CARRERAS en las que ambos han coincidido mostrando en una tabla la CARRERA,POSICION (de ambos corredores)y la FECHA ,el problema que me da es que no se como diferenciar los recordset de ambos corredores al querer mostrar la POSICION en la carrera,ya que lo estoy recogiendo todo en un solo SELECT,que es este:

SELECT Carrera FROM Tabla WHERE Corredor LIKE '%"&var1&"%' AND Corredor LIKE '%"&var2&"%' ORDER BY Fecha

y evidentemente no es correcto.¿cómo hago para diferenciar el recordset de POSICION y que me muestre en una tabla lo hecho por ambos corredores?

tal vez es una tontería,pero llevo ofuscado unos días con esto

muchas gracias por todo
un saludo
  #2 (permalink)  
Antiguo 12/11/2004, 14:19
Avatar de Immortal  
Fecha de Ingreso: septiembre-2004
Mensajes: 38
Antigüedad: 20 años, 8 meses
Puntos: 0
Puedes hacer 2 recordset con diferentes consultas SQL

Ej.

set conexion=Server.CreateObject("ADODB.Connection")
conexion.ConnectionString="tu conexion"
set rs_sql1=Server.CreateObject("ADODB.Recordset")
set rs_sql2=Server.CreateObject("ADODB.Recordset")
sql1=SELECT * from Tabla WHERE corredor='"request.form(corredor1)"'"
sql2=SELECT * from Tabla WHERE corredor='"request.form(corredor2)"'"
rs_sql1.open sql1,conexion,2,3
rs_sql2.open sql2,conexion,2,3

y nada mas compara

rs_sql1.Fields("posicion") y rs_sql2.Fields("posicion")

con un if si uno es mayor que otro sacas conclusiones o comparas cualquier resultado arrojado por los dos recordset como por ej si las fechas coinciden o lo que sea

Saludos
  #3 (permalink)  
Antiguo 13/11/2004, 09:36
 
Fecha de Ingreso: septiembre-2003
Mensajes: 24
Antigüedad: 21 años, 7 meses
Puntos: 0
muchas gracias Immortal,

me podrías indicar como hacer el IF,no me entero mucho

por ahora sería algo así,

IF rs_sql1.Fields("Carrera")=rs_sql2.Fields("Carrera" ) then
???????

gracias
  #4 (permalink)  
Antiguo 14/11/2004, 03:37
Avatar de Immortal  
Fecha de Ingreso: septiembre-2004
Mensajes: 38
Antigüedad: 20 años, 8 meses
Puntos: 0
yo por lo general asigno los valores del recordset en variables y luego las comparo, no recuerdo en este momento si te marca un error al hacerlo como dices pero yo por costubre hago algo asi:

var1=rs_sql1.Field("Carrera")
var2=rs_sql2.Field("Carrera")

if var1<>var2 then
if var1>var2 then
response.write "Gano"&var1&""
else
response.write "Gano"&var2&""
end if
else
response.write "Empatados"
end if

Si tienes dudas mandame un mensaje

Saludos!!!!!!!!!!!!!!!!
  #5 (permalink)  
Antiguo 14/11/2004, 03:50
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 23 años, 4 meses
Puntos: 98
Bueno...esto que planteas Inmortal, ciertamente funciona, pero me parece que no es una buena práctica evaluar una condición inmediatamente después de otra, pues no conoces el todavía la consecuencia de la primera acción, cuando estás preguntando por otra condición:

Si tengo mas de uno:
Si esto es mayor que 10:

Esto se puede resumir con operadores lógicos:

Si tengo mas de uno Y es mayor que 10:

Pero en este caso en especial, existen 3 estátus, para evaluar solo 2 variables:

var1 > var2 -> ganó corredor uno
var1 < var2 -> ganó corredor dos
var1 = var2 -> empataron

Por lo tanto

Código:
If var1 > var2 Then
  'Ganó corredor uno
ElseIf var1 < var2 Then
  'Ganó corredor 2
ElseIf var1 = var2 Then
  'Empataron
End If
Se me hace una manera mas ordenada de realizar esto, no solo para ti, sino pensando en las personas que le podrían dar mantenimiento a la aplicación.


Salu2,
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #6 (permalink)  
Antiguo 14/11/2004, 03:57
Avatar de Immortal  
Fecha de Ingreso: septiembre-2004
Mensajes: 38
Antigüedad: 20 años, 8 meses
Puntos: 0
Gracias por el tip u goldman

Saludos!!!!!!!!!!!!!!!!!!!!!!!!!!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:40.