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

Ayuda con una Consulta

Estas en el tema de Ayuda con una Consulta en el foro de ASP Clásico en Foros del Web. Resulta que estoy haciendo conteo de registros en base a diferentes consultas como estas que muestro a continuacion: <% strSQL = "SELECT COUNT(id) AS total ...
  #1 (permalink)  
Antiguo 26/08/2008, 10:14
 
Fecha de Ingreso: abril-2008
Mensajes: 62
Antigüedad: 16 años, 1 mes
Puntos: 1
Busqueda Ayuda con una Consulta

Resulta que estoy haciendo conteo de registros en base a diferentes consultas como estas que muestro a continuacion:

<%
strSQL = "SELECT COUNT(id) AS total FROM femenino WHERE p1='R1' OR p1='R2' "
Set RS = Conn.Execute(strSQL)
total=(RS("total"))%>
<%
strSQL = "SELECT COUNT(id) AS total1 FROM femenino WHERE p2='R1' OR p2='R2' "
Set RS = Conn.Execute(strSQL)
total1=(RS("total1"))
%>
<%
strSQL = "SELECT COUNT(id) AS total2 FROM femenino WHERE p3='R1' OR p3='R2' "
Set RS = Conn.Execute(strSQL)
total2=(RS("total2"))
suma=Cint(total)+Cint(total1)+Cint(total2)
response.write(suma)
%>
La variable q van cambiando es "p" q va desde p1 hasta p81 , la pregunta es como puedo hacer este conteo mediante un ciclo y al final mostrar el resultado

Saludos !!!
  #2 (permalink)  
Antiguo 26/08/2008, 10:33
Avatar de JuanRAPerez
Colaborador
 
Fecha de Ingreso: octubre-2003
Mensajes: 2.393
Antigüedad: 20 años, 7 meses
Puntos: 27
Respuesta: Ayuda con una Consulta

kike278

ummm seria de probar con algo

un for¿?

Código PHP:
for 1 to 81
     strSQL 
"SELECT COUNT(id) AS total FROM femenino WHERE P"&i&"='R1' OR p"&i&"='R2' "
     'ejecutas
     '
creas tu variable total i
netx i 
sumas todos los totales ¿?

no se se me ocurre

suerte
__________________
JuanRa Pérez
San Salvador, El Salvador
  #3 (permalink)  
Antiguo 26/08/2008, 10:58
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 23 años, 3 meses
Puntos: 535
Respuesta: Ayuda con una Consulta

Yo lo haría con UNION. Así para 4 valores de p (para ejemplificar)


Código:
SELECT 1 AS P, Count(id) AS total FROM femenino WHERE p1='R1' Or p1='R2'
UNION
SELECT 2 AS P, Count(id) AS total FROM femenino WHERE p2='R1' Or p2='R2'
UNION
SELECT 3 AS P, Count(id) AS total FROM femenino WHERE p3='R1' Or p3='R2'
UNION
SELECT 4 AS P, Count(id) AS total FROM femenino WHERE p4='R1' Or p4='R2'

Te marco en rojo las variables... el FOR para realizarlo te lo dejo a vos
__________________
...___...
  #4 (permalink)  
Antiguo 26/08/2008, 11:20
 
Fecha de Ingreso: abril-2008
Mensajes: 62
Antigüedad: 16 años, 1 mes
Puntos: 1
Respuesta: Ayuda con una Consulta

grax JuanRAPerez ya lo aplique pero el resultado q me arroja no es el correcto o quiza no lo este aplicando bien
Código PHP:
<%
  for 
1 to 81
strSQL 
"SELECT COUNT(id) AS total"&i&" FROM femenino WHERE p"&i&"='R1' OR p"&i&"='R2' "
Set RS Conn.Execute(strSQL)  
total=(RS("total"&i&""))
next 
Response
.write(total)
%> 
y Al Zuwaga un favor me podrias explicar como adaptar tu propuesta a mi codigo, la verdad es q nunca lo habia manejado asi y me enrede un poco

grax a ambos !!
  #5 (permalink)  
Antiguo 26/08/2008, 12:32
 
Fecha de Ingreso: abril-2008
Mensajes: 62
Antigüedad: 16 años, 1 mes
Puntos: 1
Respuesta: Ayuda con una Consulta

Cita:
Iniciado por JuanRAPerez Ver Mensaje
kike278

ummm seria de probar con algo

un for¿?

Código PHP:
for 1 to 81
     strSQL 
"SELECT COUNT(id) AS total FROM femenino WHERE P"&i&"='R1' OR p"&i&"='R2' "
     'ejecutas
     '
creas tu variable total i
netx i 
sumas todos los totales ¿?

no se se me ocurre

suerte
ok ya lo corregi ya me muestra los totales por cada pasada del ciclo for, ahora la duda es como sumo esos 81 valores para obtener un total
  #6 (permalink)  
Antiguo 26/08/2008, 18:35
Avatar de JuanRAPerez
Colaborador
 
Fecha de Ingreso: octubre-2003
Mensajes: 2.393
Antigüedad: 20 años, 7 meses
Puntos: 27
Respuesta: Ayuda con una Consulta

ummmm basados en mi idea y no en la de el maestro

lo haria así

Código PHP:
SumaTotal 0
for 1 to 81
     Total 
0
     strSQL 
"SELECT COUNT(id) AS total FROM femenino WHERE P"&i&"='R1' OR p"&i&"='R2' "
     'ejecutas
     '
creas tu variable total i
     
'SumaTotal = SumaTotal + Total & i
next '

maquilla y bueno seria cuando obtengas tu código definitivo lo postes como resultado final para evitar que el post quede sin solucion y que la gente lo despierte años mas adelante

suerte
__________________
JuanRa Pérez
San Salvador, El Salvador
  #7 (permalink)  
Antiguo 27/08/2008, 08:51
 
Fecha de Ingreso: abril-2008
Mensajes: 62
Antigüedad: 16 años, 1 mes
Puntos: 1
Pregunta Respuesta: Ayuda con una Consulta

Ok ya aplique ese codigo y ya me da un total pero no es correcto.
¿Estoy mal en alguna parte del codigo ?
[PHP<%
SumaTotal=0
for i = 1 to 81
Total=0
strSQL = "SELECT COUNT(id) AS total FROM femenino WHERE P"&i&"='R1' OR p"&i&"='R2' "
Set RS = Conn.Execute(strSQL)
Total=(RS("total"))
next
SumaTotal =SumaTotal+ Total & i
Response.Write(SumaTotal)
%>[/PHP]
  #8 (permalink)  
Antiguo 27/08/2008, 11:36
Avatar de JuanRAPerez
Colaborador
 
Fecha de Ingreso: octubre-2003
Mensajes: 2.393
Antigüedad: 20 años, 7 meses
Puntos: 27
Respuesta: Ayuda con una Consulta

Cita:
SumaTotal = SumaTotal + Total
lo del i era para indicarte que era el total de ese i al que entraba
__________________
JuanRa Pérez
San Salvador, El Salvador
  #9 (permalink)  
Antiguo 27/08/2008, 13:00
 
Fecha de Ingreso: abril-2008
Mensajes: 62
Antigüedad: 16 años, 1 mes
Puntos: 1
Respuesta: Ayuda con una Consulta

Listo mil gracias por la ayuda y este es el codigo final !!!
Grax y Saludos!!!

Código PHP:
<%
SumaTotal=0
  
for 1 to 81  
  Total
=0
strSQL 
"SELECT COUNT(id) AS total"&i&" FROM principal  WHERE sexo='R2' and  p"&i&"='R1' or sexo='R2' and p"&i&"='R2' "
Set RS Conn.Execute(strSQL)  
Total=(RS("total"&i&""))
SumaTotal=SumaTotal+Total
next 
Response
.Write(SumaTotal)
%> 
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 00:37.