Ver Mensaje Individual
  #1 (permalink)  
Antiguo 05/07/2010, 08:43
th3r0rn
 
Fecha de Ingreso: noviembre-2007
Mensajes: 504
Antigüedad: 17 años, 1 mes
Puntos: 2
Contar registros no validos en una consulta

Hola tengo algo asi:


Como se ve eb la imagen el Targer es de 250, es decir este peso es el que debe llebar cada bolsa que se produce, alado se ve la columna peso donde se regflejan todos los pesos aproximados a dicho target, Ahora bien tengo una ley que dice:
que si el gramaje (target) es de 250 entonses solo deven de existir como maximo 7 Bolsas con un gramaje de: 239 es decir si en la tabla de pesos tengo mas de 7 bolsas que esten por de bajo de 239 entonses ya viola la ley internacional de peso, Lo que quiro hacer es algo como:
IF Target=250 and peso <=239 Then ley=ley=+1
y asi ir aumentando para saber cuantas bolsas mal llenadas tengo y marcar un alerta, el problema es que estos datos los obtengo de una base de datos y no se como podria hacer esto? Mi code es el siguiente
Código ASP:
Ver original
  1. <&#37;
  2.  
  3. dim conexion,calendar1,calendar2,registros,linea,hora,test
  4. calendar1=request.form("calendar1")
  5. calendar2=request.form("calendar2")
  6. linea=request.form("linea")
  7. Tubo=request.form("tubo")
  8. hora=request.form("hora")
  9. 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&"'")
  10.         SET conexion=Server.CreateObject("ADODB.Connection")
  11.         conexion.CommandTimeout = 0
  12.         conexion.ConnectionTimeout = 0
  13.        
  14.         conexion.Open "PROVIDER=SQLOLEDB; DATA SOURCE=VALP-MESSRV02;UID=sa;PWD=messrv;DATABASE=wasp "
  15.        
  16.         SET registros=Server.CreateObject("ADODB.RecordSet")
  17.         'registros.open"SELECT peso,tubo from pesos where fecha  between '"&calendar1&"' AND '"&calendar2&"'",conexion
  18.  
  19.         'registros.open"SELECT h.hora AS hora1,h.marca,h.codoptima AS codoptimaT,h.target,P.CODOPTIMA,O.CODIGO,p.hora,p.peso,p.vaso,p.fecha,o.linea,o.tubo INTO #c FROM pesos AS p, optimas AS o,htargets AS h WHERE o.codigo = p.codOptima AND o.linea = '"&linea&"' AND o.tubo ='"&tubo&"' AND p.fecha BETWEEN '"&calendar1&"' AND '"&calendar2&"' AND p.hora='"&hora&"' AND h.codoptima = o.codigo AND h.hora='"&hora&"'",conexion
  20.  
  21.    
  22.         registros.open"EXEC cuenta '"&calendar1&"','"&calendar2&"','"&linea&"','"&tubo&"','"&hora&"'",conexion
  23.    
  24.     ' registros.EOF Then Response.Write("No records returned.")
  25.     'USED'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 ='"&tubo&"'  AND h.fecha Between '"&calendar1&"' AND '"&calendar2&"'  AND p.fecha Between '"&calendar1&"' AND '"&calendar2&"' AND p.hora='"&hora&"'and h.codoptima = o.codigo and h.hora='"&hora&"'" ,conexion
  26.     '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    
  27.     '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
  28.  
  29.     dim a,NumBolsas
  30.     do while not registros.eof  'promedio-target*numero de bolsas
  31. a=cint(registros.fields("target"))
  32. NumBolsas=cint(registros.fields("totality"))
  33.  
  34.         response.write("<tr>")
  35.         response.write("<td>"&registros.fields("linea")&"</td>")
  36.         response.write("<td>"&registros.fields("peso")&"</td>")
  37.         response.write("<td>"&registros.fields("target")&"</td>")
  38.         'response.write("<td>"&a&"</td>")
  39.         response.write("<td>"&registros.fields("marca")&"</td>")
  40.         response.write("<td>"&registros.fields("vaso")&"</td>")
  41.         response.write("<td>"&registros.fields("tubo")&"</td>")
  42.         response.write("<td>"&registros.fields("fecha")&"</td>")
  43.         response.write("<td>"&registros.fields("totality")&"</td>")
  44.        
  45.         registros.movenext
  46.  
  47.  
  48. loop
  49.  
  50. conexion.close
  51. SET conexion2=Server.CreateObject("ADODB.Connection")
  52.             conexion2.Open "PROVIDER=SQLOLEDB; DATA SOURCE=VALP-MESSRV02;UID=sa;PWD=messrv;DATABASE=wasp "
  53.             SET registros2=Server.CreateObject("ADODB.RecordSet")
  54.        
  55.         registros2.open"SELECT AVG(PESO)as peso from pesos where fecha Between '"&calendar1&"' AND '"&calendar2&"'AND hora='"&hora&"' AND codoptima='"&codoptima&"'",conexion2
  56.         'RESPONSE.WRITE("SELECT AVG(PESO)as peso from pesos where fecha Between '"&calendar1&"' AND '"&calendar2&"'AND hora='"&hora&"' AND codoptima='"&codoptima&"'")
  57.         do while not registros2.eof
  58.         c=cint(registros2.fields("peso"))
  59.         'b=(a-c)/a
  60.         b=(c-a)/a
  61.         response.write("Promedio: <b>"&registros2.fields("peso")&"</b><br>")
  62.     '############## Aritmetica ####################
  63.     ' C = Promedio  WHERE B=(a-c)/a
  64.     ' A = Target
  65.     saving=(c-a)*NumBolsas
  66.     if b<=0 then    response.write(" Op: <b>"&b&"</b><img src='http://www.pact-oil.co.uk/images/error.gif'</a><br>") else response.write(" Op: <b>"&b&"</b><img src='http://www.hospitalsierrallana.com/imagenes/gif_ok.gif'</a><br>")  end if
  67.         response.write("Saving:<b> "&saving/1000&" KG</b>")'DIVIDIR /1000
  68.        
  69.        
  70.         registros2.movenext
  71.     loop
  72.        
  73.         conexion2.close
  74.        
  75. %>