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

ayuda por favor!

Estas en el tema de ayuda por favor! en el foro de ASP Clásico en Foros del Web. Hola les explico qual es mi problema. tengo una base de datos con un campo llamado total donde tengo multiplicado 2 valores cantidad x precio ...
  #1 (permalink)  
Antiguo 27/12/2003, 06:58
 
Fecha de Ingreso: diciembre-2003
Mensajes: 44
Antigüedad: 21 años, 5 meses
Puntos: 0
ayuda por favor!

Hola les explico qual es mi problema. tengo una base de datos con un campo llamado total donde tengo multiplicado 2 valores cantidad x precio esta parte la tengo superada. el problema es q ahora quiero sumar todos los valores del campo total he probado de la siguiente manera:
"SELECT SUM(total) AS tot FROM compra_pre WHERE id ="&a
en el campo id tengo un numero de session para cada cliente y a es la variable de la session. Lo hago de esta manera porque solo quiero que me sume los valores que tengan el mismo id. luego en la pagina hago un: <%Response.Write ""& tot &""%> pero no me hace la suma ya he probado de todas las maneras y no he dado con la solucion espero que alguien pueda ayudarme y gracias por adelantado.
  #2 (permalink)  
Antiguo 27/12/2003, 14:55
Avatar de univercity  
Fecha de Ingreso: noviembre-2002
Mensajes: 681
Antigüedad: 22 años, 6 meses
Puntos: 0
<%

Total = 0

Do While Not rst.EOF

cantidad = clng(rst("cantidad"))
Precio =clng(rst("precio"))
F = cantidad * precio
G = clng(f)
total = total + G
total2 = formatnumber(total)

rst.MoveNext
Loop

%>

'para mostrar tu total... que para este caso te lo he dejado formateado en total2

<%= total2%>


Slds.
__________________
"Lo importante es nunca dejar de hacerse preguntas"
Albert Einstein
  #3 (permalink)  
Antiguo 29/12/2003, 00:01
Avatar de mamon  
Fecha de Ingreso: enero-2002
Ubicación: Lima
Mensajes: 1.302
Antigüedad: 23 años, 4 meses
Puntos: 3
no sé si te habrá funcionado, no he leido lo que han puesto, pero puede ser. aquí te doy otra sugerencia

<%
strSQL = "select * from compra_pre where id = 'a'"
set oRS = oCN.execute(strSQL)

' si el valor del campo id no es número no sé xq lo has puesto de esa forma, si no lo es tons ta bien de la forma q lo he puesto, pero si es numerico tons sería asi.

strSQL = "select * from compra_pre where id = "& 1
set oRS = oCN.execute(strSQL)


if not oRS.eof then

xtotal = 0

do while not oRS.eof

xtotal = Cint(oRS("total")) + Cint(xtotal)

oRS.movenext
loop

response.write xtotal

end if
%>

espero te sirva
__________________
Yo si sé lo que es trabajar duro, porque lo he visto.
  #4 (permalink)  
Antiguo 30/12/2003, 03:24
 
Fecha de Ingreso: diciembre-2003
Mensajes: 44
Antigüedad: 21 años, 5 meses
Puntos: 0
GRACIAS...

Hola gracias a los 2 por contestar os lo agradezco muxo pero en el 1r el que me escribió univercity no me muestra nada, y en el de mamon me da un error que es el siguiente: Tipo de error:
Error de Microsoft VBScript en tiempo de ejecución (0x800A01A8)
Se requiere un objeto: ''
la linea del error es la siguiente: set suma = oCN.execute(strSQL). aber si me podeis decir que he exo mal o que debo acer para que vaya bien. GRACIAS
  #5 (permalink)  
Antiguo 30/12/2003, 12:40
Avatar de mamon  
Fecha de Ingreso: enero-2002
Ubicación: Lima
Mensajes: 1.302
Antigüedad: 23 años, 4 meses
Puntos: 3
bueno primero has debido hacer esto:

set oCN = Server.Createobject("ADODB.Connection")
oCN.open ' y aquí pones el string para la conexión.. manyas?

otra cosa.. no hay una línea que sea asi.... como la has escrito.

otra cosa, el id es numérico?
__________________
Yo si sé lo que es trabajar duro, porque lo he visto.
  #6 (permalink)  
Antiguo 30/12/2003, 15:20
 
Fecha de Ingreso: diciembre-2003
Mensajes: 44
Antigüedad: 21 años, 5 meses
Puntos: 0
Si el id es numerico, el id lo he creado con un sessionid. Aparte de esto canviando de tema haber si me puedes aclarar una duda que tengo, soy un novato y todo lo que se que es poco, lo he conseguido gracias a los libros y a buscar por la web y gracias a todos vosotros. Aqui va mi duda: cuando ago un select para que solo me muestre los datos que tiene el mismo id hago lo siguiente:

Dim a
a = session.sessionID
"Select * FROM bd.tabla where id =" &a

y va perfecto pero para hacer una simple suma que por lo que he leido en otros post es con el sum ago esto:

"SELECT SUM (total) As sub tabla where id =" &a

y no funciona podrias decirme que es lo que ago mal?

MUXAS GRACIAS!!!
  #7 (permalink)  
Antiguo 30/12/2003, 18:02
Avatar de mamon  
Fecha de Ingreso: enero-2002
Ubicación: Lima
Mensajes: 1.302
Antigüedad: 23 años, 4 meses
Puntos: 3
bueno priemro que todo... te salió lo que te di?

y otra cosa.. cómo haces para mostrar la suma?? osea para q las personas vean el resultado.. fácil ahi ta el problema... te manda algun error o algo?
__________________
Yo si sé lo que es trabajar duro, porque lo he visto.
  #8 (permalink)  
Antiguo 30/12/2003, 18:14
 
Fecha de Ingreso: diciembre-2003
Mensajes: 44
Antigüedad: 21 años, 5 meses
Puntos: 0
no no me a salido, lo he probado pero es que ahora estoy en otro PC el archivo que utilizo esta en mi ordenador y este es otro. pero lo he provado i no me a funcionado seguramente porque hago algo mal. te explico lo que exo.

set oCN = Server.Createobject("ADODB.Connection")
oCN.open ' y aquí pones el string para la conexión.. manyas? ---> esto no lo he entendio mu bien, no se si es que tengo que poner la variable que luego tendre que poner en el body para visulizarlo.
luego en el body he puesto lo siguiente.

strSQL = "select * from compra_pre where id = "& 1
set oRS = oCN.execute(strSQL)


if not oRS.eof then

xtotal = 0

do while not oRS.eof

xtotal = Cint(oRS("total")) + Cint(xtotal)

oRS.movenext
loop

response.write xtotal

end if

entonces cuando abro la pagina me sale error en la linea en la q sale el execute.

Lo siento seguramente sea algo q yo ago mal si lo ves muy dificil pa explicarmelo dejalo se q es dificil explicarme algo de todas maneras muxas gracias me lo puedas explicar o no.

Otra cosa yo lo e exo de una manera q me lo suma todo lo unico q no me sale es cuando le digo q solo me sume los q tengan la misma id, sino los suma todos sin ningun problema.
  #9 (permalink)  
Antiguo 30/12/2003, 18:23
 
Fecha de Ingreso: diciembre-2003
Mensajes: 44
Antigüedad: 21 años, 5 meses
Puntos: 0
no no me a salido, lo he probado pero es que ahora estoy en otro PC el archivo que utilizo esta en mi ordenador y este es otro. pero lo he provado i no me a funcionado seguramente porque hago algo mal. te explico lo que exo.

set oCN = Server.Createobject("ADODB.Connection")
oCN.open ' y aquí pones el string para la conexión.. manyas? ---> esto no lo he entendio mu bien, no se si es que tengo que poner la variable que luego tendre que poner en el body para visulizarlo.
luego en el body he puesto lo siguiente.

strSQL = "select * from compra_pre where id = "& 1
set oRS = oCN.execute(strSQL)


if not oRS.eof then

xtotal = 0

do while not oRS.eof

xtotal = Cint(oRS("total")) + Cint(xtotal)

oRS.movenext
loop

response.write xtotal

end if

entonces cuando abro la pagina me sale error en la linea en la q sale el execute.

Lo siento seguramente sea algo q yo ago mal si lo ves muy dificil pa explicarmelo dejalo se q es dificil explicarme algo de todas maneras muxas gracias me lo puedas explicar o no.

Otra cosa yo lo e exo de una manera q me lo suma todo lo unico q no me sale es cuando le digo q solo me sume los q tengan la misma id, sino los suma todos sin ningun problema.
  #10 (permalink)  
Antiguo 30/12/2003, 19:52
Avatar de mamon  
Fecha de Ingreso: enero-2002
Ubicación: Lima
Mensajes: 1.302
Antigüedad: 23 años, 4 meses
Puntos: 3
OK, no es difícil.. te apuesto que el roche ta en la línea donde no entiendes... a q base de datos te conectas?

en oCN.open debes poner el string que dice a q base de datos te estás conectando..

mira puede ser que tengas roches con el código que has tenido antes.. puede ser que esta sea la solución

<%
'el Cint() es para q la variable la convierta en numeric
"SELECT SUM(total) AS tot FROM compra_pre WHERE id ="& Cint(a)
set oRS = oCN.execute(strSQL)

response.write oRS("tot")

%>

mira puede ser q sigas teniendo roches xq no sabes q poner en:
oCN.open
mira x ejemplo si te conectas access
tendrías q poner esto:

base_datos = Server.MapPath("tu_base_de_datos.mdb")

oCN.Open "driver={Microsoft Access Driver (*.mdb)};dbq="&base_datos

si tienes roches no dudes en preguntar, siempre es bueno preguntar para poder aprender.. yo tb pregunto un MONTÓN!!! si no has entendido ni joda, dime no ma'
__________________
Yo si sé lo que es trabajar duro, porque lo he visto.
  #11 (permalink)  
Antiguo 02/01/2004, 06:57
 
Fecha de Ingreso: diciembre-2003
Mensajes: 44
Antigüedad: 21 años, 5 meses
Puntos: 0
Sonrisa GRACIAS!!!

GRACIAS!!! ya funciona me lo suma todo a la perfeccion. GRACIAS por tu ayuda y sobretodo por tu paciencia. muxas gracias!!
  #12 (permalink)  
Antiguo 04/01/2004, 13:26
Avatar de mamon  
Fecha de Ingreso: enero-2002
Ubicación: Lima
Mensajes: 1.302
Antigüedad: 23 años, 4 meses
Puntos: 3
DE NADA
__________________
Yo si sé lo que es trabajar duro, porque lo he visto.
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 08:00.