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

Como sacar operaciones matematicas con datox obtenidos de la DB

Estas en el tema de Como sacar operaciones matematicas con datox obtenidos de la DB en el foro de ASP Clásico en Foros del Web. Hola, necesito sacar unas operaciones matematicas con unos datos que extraigo de una db, el problema es que no se como puedo hacerlo, si existe ...
  #1 (permalink)  
Antiguo 15/06/2010, 08:40
 
Fecha de Ingreso: noviembre-2007
Mensajes: 504
Antigüedad: 16 años, 5 meses
Puntos: 2
Como sacar operaciones matematicas con datox obtenidos de la DB

Hola, necesito sacar unas operaciones matematicas con unos datos que extraigo de una db, el problema es que no se como puedo hacerlo, si existe alguna forma de asignar el valor obtenido de la base de datos a una variable o constante. El otro problema es que los datos con los que quiero realizar las operaciones los extraigo de dos consultas diferentes y por tal creo2 conexiones a la base de datos que obviamente cierro conexion ya que obtengo los datos:
Explico, lo que quiero hacer es sacar el "OP" el cual se calcula de la siguiente forma:

OP=media-Target/target

La media es el promedio que muestro en mi codigo en la linea 56 y el target es el que muestro en la tabla html de la columna Target:
Código ASP:
Ver original
  1. <td><b>Linea</b></td>
  2. <td><b>Peso</b></td>
  3. <td><b>Target</b></td>
  4. <td><b>Marca</b></td>
  5. <td><b>Vaso</b></td>
  6. <td><b>Tubo</b></td>
  7. <td><b>Fecha</b></td>
  8. </tr>
  9. <&#37;
  10.  
  11. dim conexion,calendar1,calendar2,registros,linea,hora,test
  12. calendar1=request.form("calendar1")
  13. calendar2=request.form("calendar2")
  14. linea=request.form("linea")
  15. Tubo=request.form("tubo")
  16. hora=request.form("hora")
  17. test=("SELECT h.hora,h.marca,h.codoptima,h.target,P.CODOPTIMA,O.CODIGO,p.hora,p.peso,p.vaso,p.fecha, o.linea,o.tubo FROM pesos as p, optimas as o,htargets as h where o.codigo = p.codOptima and o.linea = '"&linea&"' and o.tubo LIKE '"&tubo&"'  AND p.fecha Between '"&calendar1&"' AND '"&calendar2&"' AND p.hora='"&hora&"'and h.codoptima = o.codigo and h.hora='"&hora&"'")
  18.         SET conexion=Server.CreateObject("ADODB.Connection")
  19.         conexion.Open "PROVIDER=SQLOLEDB; DATA SOURCE=VALP-MESSRV02;UID=sa;PWD=messrv;DATABASE=wasp "
  20.         SET registros=Server.CreateObject("ADODB.RecordSet")
  21.         'registros.open"SELECT peso,tubo from pesos where fecha  between '"&calendar1&"' AND '"&calendar2&"'",conexion
  22.  
  23.     registros.open"SELECT h.hora,h.marca,h.codoptima,h.target,P.CODOPTIMA,O.CODIGO,p.hora,p.peso,p.vaso,p.fecha, o.linea,o.tubo FROM pesos as p, optimas as o,htargets as h where o.codigo = p.codOptima and o.linea = '"&linea&"' and o.tubo LIKE '"&tubo&"'  AND p.fecha Between '"&calendar1&"' AND '"&calendar2&"' AND p.hora='"&hora&"'and h.codoptima = o.codigo and h.hora='"&hora&"'" ,conexion
  24.     'registros.open"SELECT p.hora,p.peso,p.vaso,p.fecha, o.linea,o.tubo FROM pesos as p, optimas as o where o.codigo = p.codOptima and o.linea = 'L15N' and o.tubo LIKE '%'  AND p.fecha Between '2010-06-14 09:00:00.000' AND '2010-06-14 09:30:00.000' AND p.hora='9:00 - 9:30'" ,conexion    
  25.     'SELECT h.codoptima,h.target,P.CODOPTIMA,O.CODIGO,p.hora,p.peso,p.vaso,p.fecha, o.linea,o.tubo,o.codigo FROM pesos as p, optimas as o,htargets as h where o.codigo = p.codOptima and o.linea = 'L07N' and o.tubo LIKE '%' AND p.fecha Between '2010-06-14 09:30' AND '2010-06-14 10:00' AND p.hora='9:30 - 10:00' and h.codoptima = o.codigo
  26.  
  27.     do while not registros.eof
  28.  
  29.         response.write("<tr>")
  30.         response.write("<td>"&registros.fields("linea")&"</td>")
  31.         response.write("<td>"&registros.fields("peso")&"</td>")
  32.         response.write("<td>"&registros.fields("target")&"</td>")
  33.         response.write("<td>"&registros.fields("marca")&"</td>")
  34.         response.write("<td>"&registros.fields("vaso")&"</td>")
  35.         response.write("<td>"&registros.fields("tubo")&"</td>")
  36.         response.write("<td>"&registros.fields("fecha")&"</td>")
  37.         registros.movenext
  38.  
  39.  
  40. loop
  41.  
  42. conexion.close
  43. response.write(test) '<--Test Debug
  44. RESPONSE.WRITE("<br>")
  45.  
  46.  
  47.             'SELECT p.peso,p.tubo,p.fecha, o.linea FROM pesos as p, optimas as o where o.codigo = p.codOptima and o.linea = 'L02N'  AND p.fecha Between '2010-05-11 09:42:34.000' AND '2010-05-11 09:42:39.000'
  48.             SET conexion2=Server.CreateObject("ADODB.Connection")
  49.             conexion2.Open "PROVIDER=SQLOLEDB; DATA SOURCE=VALP-MESSRV02;UID=sa;PWD=messrv;DATABASE=wasp "
  50.             SET registros2=Server.CreateObject("ADODB.RecordSet")
  51.        
  52.         registros2.open"SELECT AVG(PESO)as peso from pesos where fecha Between '"&calendar1&"' AND '"&calendar2&"'",conexion2
  53.        
  54.         do while not registros2.eof
  55.        
  56.         response.write("Promedio: "&registros2.fields("peso")&"")
  57.         registros2.movenext
  58.     loop
  59.        
  60.         conexion2.close
  61.        
  62. %>
Como vemos son 2 conexiones distintas, como puedo hacer este calculo?
  #2 (permalink)  
Antiguo 15/06/2010, 09:26
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 3 meses
Puntos: 146
Respuesta: Como sacar operaciones matematicas con datox obtenidos de la DB

No ocupas tener una conexión por consulta, sería una conexión por servidor y ni siquiera esta limitante si consideras los servidores vinculados.

Tu código tiene muchos puntos de mejora, pero para lo que necesitas creo que con solo obtener el promedio antes de lo que imprimes el target y luego ya en esa consulta haces la operación que necesitas.

Etiquetas: matematicas, operaciones
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 05:04.