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

Sumatoria por fecha

Estas en el tema de Sumatoria por fecha en el foro de ASP Clásico en Foros del Web. Necesito una idea para hacer lo Sgte:: Traigo un listado y filtro por fechas ej Reporte del 01/09/03 hasta el 02/09/03 me lista todo los ...
  #1 (permalink)  
Antiguo 02/09/2003, 11:57
Avatar de dobled  
Fecha de Ingreso: enero-2002
Ubicación: Rancagua - Chile
Mensajes: 1.328
Antigüedad: 22 años, 3 meses
Puntos: 2
Sumatoria por fecha

Necesito una idea para hacer lo Sgte::

Traigo un listado y filtro por fechas ej
Reporte del
01/09/03 hasta el 02/09/03

me lista todo los registros juntos pero necesito la sumatoria de un campo ( ej: campo : despachos) del dia primero y luego salte al dia 2 y su respectiva suma

estará claro ?
__________________
Usa títulos específicos y con sentido
En las listas de correo o en los grupos de noticias, la cabecera del mensaje es tu oportunidad de oro para atraer la atención de expertos cualificados en aproximadamente 50 caracteres o menos. No los desperdicies en balbuceos como "Por favor ayúdame" (de "POR FAVOR AYÚDAME!!!" ya ni hablamos). No intentes impresionarnos con lo profundo de tu angustia; mejor usa ese preciado espacio para una descripción lo más concisa posible del problema.
  #2 (permalink)  
Antiguo 02/09/2003, 18:21
Avatar de bakanzipp  
Fecha de Ingreso: noviembre-2001
Ubicación: santiago de shilli
Mensajes: 2.554
Antigüedad: 22 años, 6 meses
Puntos: 0
en el select hace un sum(campo) y un group by fecha

saludos
  #3 (permalink)  
Antiguo 03/09/2003, 07:52
Avatar de dobled  
Fecha de Ingreso: enero-2002
Ubicación: Rancagua - Chile
Mensajes: 1.328
Antigüedad: 22 años, 3 meses
Puntos: 2
Bakanzipp como quedaria este select!! Please

strsql ="SELECT * FROM VDespachos_Con_DPC WHERE (shipped_dt BETWEEN '"&fecha_desde&"' AND '"&fecha_hasta&"') AND (slspsn_no = '"&asistente&"')ORDER BY search_name, nro_orden_compra, job_number "

__________________
Usa títulos específicos y con sentido
En las listas de correo o en los grupos de noticias, la cabecera del mensaje es tu oportunidad de oro para atraer la atención de expertos cualificados en aproximadamente 50 caracteres o menos. No los desperdicies en balbuceos como "Por favor ayúdame" (de "POR FAVOR AYÚDAME!!!" ya ni hablamos). No intentes impresionarnos con lo profundo de tu angustia; mejor usa ese preciado espacio para una descripción lo más concisa posible del problema.
  #4 (permalink)  
Antiguo 03/09/2003, 07:56
Avatar de bakanzipp  
Fecha de Ingreso: noviembre-2001
Ubicación: santiago de shilli
Mensajes: 2.554
Antigüedad: 22 años, 6 meses
Puntos: 0
strsql ="SELECT sum(campo1),campo2,campo3 FROM VDespachos_Con_DPC WHERE (shipped_dt BETWEEN '"&fecha_desde&"' AND '"&fecha_hasta&"') AND (slspsn_no = '"&asistente&"')
ORDER BY search_name, nro_orden_compra, job_number
GROUP BY shipped_dt"

trata de evitar los * en tus sql's. Otra cosa no se si funque un order con un group.


saludos
  #5 (permalink)  
Antiguo 03/09/2003, 08:11
Avatar de dobled  
Fecha de Ingreso: enero-2002
Ubicación: Rancagua - Chile
Mensajes: 1.328
Antigüedad: 22 años, 3 meses
Puntos: 2
strsql ="SELECT sum(unit_price), search_name,producto,descripcion, nro_orden_compra, job_number, inv_no, fecha_req_desde, shipped_dt, cantidad, qty_to_ship, peso_placa, ton, unit_price, vtaus, ctous, pvtaus, ctomt, dpc
FROM VDespachos_Con_DPC WHERE (shipped_dt BETWEEN '"&fecha_desde&"' AND '"&fecha_hasta&"') AND (slspsn_no = '"&asistente&"')
ORDER BY search_name, nro_orden_compra, job_number GROUP BY shipped_dt"



me da este error

Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[Microsoft][ODBC SQL Server Driver][SQL Server]Sintaxis incorrecta cerca de la palabra clave 'GROUP'.

/reporte_vdespachos_con_dpc.asp, line 43
__________________
Usa títulos específicos y con sentido
En las listas de correo o en los grupos de noticias, la cabecera del mensaje es tu oportunidad de oro para atraer la atención de expertos cualificados en aproximadamente 50 caracteres o menos. No los desperdicies en balbuceos como "Por favor ayúdame" (de "POR FAVOR AYÚDAME!!!" ya ni hablamos). No intentes impresionarnos con lo profundo de tu angustia; mejor usa ese preciado espacio para una descripción lo más concisa posible del problema.
  #6 (permalink)  
Antiguo 03/09/2003, 08:36
Avatar de dobled  
Fecha de Ingreso: enero-2002
Ubicación: Rancagua - Chile
Mensajes: 1.328
Antigüedad: 22 años, 3 meses
Puntos: 2
tenia que agregar los campos del select al GROUP pero muestra lo mismo que antes???
__________________
Usa títulos específicos y con sentido
En las listas de correo o en los grupos de noticias, la cabecera del mensaje es tu oportunidad de oro para atraer la atención de expertos cualificados en aproximadamente 50 caracteres o menos. No los desperdicies en balbuceos como "Por favor ayúdame" (de "POR FAVOR AYÚDAME!!!" ya ni hablamos). No intentes impresionarnos con lo profundo de tu angustia; mejor usa ese preciado espacio para una descripción lo más concisa posible del problema.
  #7 (permalink)  
Antiguo 03/09/2003, 08:48
Avatar de dobled  
Fecha de Ingreso: enero-2002
Ubicación: Rancagua - Chile
Mensajes: 1.328
Antigüedad: 22 años, 3 meses
Puntos: 2
Lo que quiero hacer es esto pero que separe los totales por fecha hechale un vistazo bakanzipp

Aqui
__________________
Usa títulos específicos y con sentido
En las listas de correo o en los grupos de noticias, la cabecera del mensaje es tu oportunidad de oro para atraer la atención de expertos cualificados en aproximadamente 50 caracteres o menos. No los desperdicies en balbuceos como "Por favor ayúdame" (de "POR FAVOR AYÚDAME!!!" ya ni hablamos). No intentes impresionarnos con lo profundo de tu angustia; mejor usa ese preciado espacio para una descripción lo más concisa posible del problema.
  #8 (permalink)  
Antiguo 03/09/2003, 09:02
Avatar de bakanzipp  
Fecha de Ingreso: noviembre-2001
Ubicación: santiago de shilli
Mensajes: 2.554
Antigüedad: 22 años, 6 meses
Puntos: 0
bueno si no te funciona con sql...tendrias que meter mano al pintar la pagina con la ayuda de javascript o asp..pero no es nada ortodoxo que digamos...

trata de hacer el group sin el order y ve que sale...empieza con un sql sencillo y a medida que avanzas complica un poco mas las cosas.
  #9 (permalink)  
Antiguo 04/09/2003, 09:34
Avatar de dobled  
Fecha de Ingreso: enero-2002
Ubicación: Rancagua - Chile
Mensajes: 1.328
Antigüedad: 22 años, 3 meses
Puntos: 2
Estoy probando este codigo pero no lo puedo hacer funcionar!

<%
SQL = "Driver={SQL Server};Description=sqldemo;SERVER=sql_ipaper; UID=sa;PWD=sa;DATABASE=DATA_04"
set oConn = server.createobject("adodb.connection")
oConn.open SQL

NxSQL ="SELECT nombre, gastos FROM neox ORDER By nombre"
Set RS = Server.CreateObject("ADODB.Recordset")
RS.Open NxSQL, oConn,3,1


%>
<table width="720" border="1" cellpadding="0" cellspacing="0" bordercolor="#CCCCCC">
<tr>
<td width="50%">Nombre</td>
<td>Gastos</td>
</tr>
<%do while not Rs.eof%>
<%
If Session("total") = false Then
Session("total") = RS("gastos")
else
Session("total") = Session("total")
End If

If RS("nombre") <> RS("nombre") Then
Session("total") = Session("total")
Else
Session("total") = Session("total") + Rs("gastos")
End If
%>
<tr>
<td height="22"><%= RS("nombre") %></td>
<td><%= RS("gastos") %></td>
</tr>
<%if RS("nombre") <> RS("nombre") Then%>
<tr>
<td><div align="right">Total :</div></td>
<td><%=Session("total") %></td>
</tr>
<%
Else
End If
%>
<%
Rs.movenext
loop
%>
__________________
Usa títulos específicos y con sentido
En las listas de correo o en los grupos de noticias, la cabecera del mensaje es tu oportunidad de oro para atraer la atención de expertos cualificados en aproximadamente 50 caracteres o menos. No los desperdicies en balbuceos como "Por favor ayúdame" (de "POR FAVOR AYÚDAME!!!" ya ni hablamos). No intentes impresionarnos con lo profundo de tu angustia; mejor usa ese preciado espacio para una descripción lo más concisa posible del problema.
  #10 (permalink)  
Antiguo 04/09/2003, 10:44
Avatar de bakanzipp  
Fecha de Ingreso: noviembre-2001
Ubicación: santiago de shilli
Mensajes: 2.554
Antigüedad: 22 años, 6 meses
Puntos: 0
y cual es el problema?
  #11 (permalink)  
Antiguo 04/09/2003, 10:48
Avatar de dobled  
Fecha de Ingreso: enero-2002
Ubicación: Rancagua - Chile
Mensajes: 1.328
Antigüedad: 22 años, 3 meses
Puntos: 2
toy tratando de hacerlo a mano guardar el gasto en una sesion y sumarle el gasto siguiente siempre cuando el nombre del usuario no cambie y si lo hace que imprima el total y luego vacie la session ...y sigo con el RS. está bien planteado?

ese codigo de arriba tiene cualquier pifia lo que pasa que lo hice a l rapida, lo estoy mejorando .....

pero recibo ideas !!
__________________
Usa títulos específicos y con sentido
En las listas de correo o en los grupos de noticias, la cabecera del mensaje es tu oportunidad de oro para atraer la atención de expertos cualificados en aproximadamente 50 caracteres o menos. No los desperdicies en balbuceos como "Por favor ayúdame" (de "POR FAVOR AYÚDAME!!!" ya ni hablamos). No intentes impresionarnos con lo profundo de tu angustia; mejor usa ese preciado espacio para una descripción lo más concisa posible del problema.
  #12 (permalink)  
Antiguo 04/09/2003, 11:14
 
Fecha de Ingreso: julio-2003
Ubicación: mi camioneta?
Mensajes: 87
Antigüedad: 20 años, 10 meses
Puntos: 0
SQL es mas potente

dobled
Prueba algo asi:

strsql ="SELECT sum(unit_price), search_name, producto, descripcion, nro_orden_compra, job_number, inv_no, fecha_req_desde, shipped_dt, cantidad, qty_to_ship, peso_placa, ton, unit_price, vtaus, ctous, pvtaus, ctomt, dpc
FROM VDespachos_Con_DPC GROUP BY shipped_dt HAVING (shipped_dt BETWEEN '"&fecha_desde&"' AND '"&fecha_hasta&"') AND (slspsn_no = '"&asistente&"') "

No estoy seguro que funcione... pero creo que puedes usar HAVING para obtener lo que necesitas.

Saludos
  #13 (permalink)  
Antiguo 04/09/2003, 11:19
 
Fecha de Ingreso: julio-2003
Ubicación: mi camioneta?
Mensajes: 87
Antigüedad: 20 años, 10 meses
Puntos: 0
Tambien se me ocurre que podrias investigar un poco el uso de PIVOT. Si entiendo bien lo que quieres, creo que tambien te podria servir. Revisa este tutorial.

http://www.asptutor.com/sql/sql8.asp#8
  #14 (permalink)  
Antiguo 05/09/2003, 11:55
Avatar de dobled  
Fecha de Ingreso: enero-2002
Ubicación: Rancagua - Chile
Mensajes: 1.328
Antigüedad: 22 años, 3 meses
Puntos: 2
Hice una rutinita que soluciona el problema ufffff estaba bueno ya
me quedo asi

ahh este ejemplo lo hice con datos simples pero al final es lo mismo

Nombre Gastos
alex 1457
alex 4777
alex 5899

Total = 12133

claudia 2589

Total = 2589

danny 2568
danny 5888
danny 8754

Total = 17210

jose 4785
jose 4268
jose 4221

aqui hay un pequeño problema el ultimo total no me lo da

ahi necesito la ayuda de Uds please pero ya está casi listo
era tambien un problema que habia planteado Lexus

codigo

NxSQL ="SELECT gastos, nombre FROM neox Order BY nombre"
Set RS = Server.CreateObject("ADODB.Recordset")
RS.Open NxSQL, oConn,3,1
%>
<table width="720" border="1" cellpadding="0" cellspacing="1">
<tr bgcolor="#FFFFFF">
<td width="50%">Nombre</td>
<td>Gastos</td>
</tr>
<%do while not Rs.eof%>
<tr bgcolor="#FFFFFF">
<%
if Nxx = "" Then
Nxx = Rs("nombre")
else
Nxx = Nxx
end if
%>
<%
if Nxx <> Rs("nombre") Then
%>
<tr bgcolor="#FFFFFF">
<td height="22"><div align="right"><b>Total= </div></td>
<td><b><%=total%> </td>
<%total = ""%>
</tr>
<%
else
end if
%>
<td height="22"><%=RS("nombre")%>
</td>
<td> <%=RS("gastos")%> </td>
<%
if total = "" Then
total = Rs("gastos")
else
valor = Rs("gastos")
total = CINT(total) + CINT(valor)
end If

Nxx = Rs("nombre")

Rs.movenext
loop
%>
</table>
<%
RS.Close
Set RS = Nothing
oConn.Close
Set oConn = Nothing
%>
__________________
Usa títulos específicos y con sentido
En las listas de correo o en los grupos de noticias, la cabecera del mensaje es tu oportunidad de oro para atraer la atención de expertos cualificados en aproximadamente 50 caracteres o menos. No los desperdicies en balbuceos como "Por favor ayúdame" (de "POR FAVOR AYÚDAME!!!" ya ni hablamos). No intentes impresionarnos con lo profundo de tu angustia; mejor usa ese preciado espacio para una descripción lo más concisa posible del problema.
  #15 (permalink)  
Antiguo 08/09/2003, 10:52
 
Fecha de Ingreso: julio-2003
Ubicación: mi camioneta?
Mensajes: 87
Antigüedad: 20 años, 10 meses
Puntos: 0
Agregale despues del loop y antes del %>

<tr bgcolor="#FFFFFF">
<td height="22"><div align="right"><b>Total= </div></td>
<td><b><%=total%> </td>
<%total = ""%>
</tr>
  #16 (permalink)  
Antiguo 08/09/2003, 11:02
 
Fecha de Ingreso: julio-2003
Ubicación: mi camioneta?
Mensajes: 87
Antigüedad: 20 años, 10 meses
Puntos: 0
Otra version

Hola.
Haber si te sirve este codigo, no lo he probado.

<%NxSQL ="SELECT gastos, nombre FROM neox Order BY nombre"
Set RS = Server.CreateObject("ADODB.Recordset")
RS.Open NxSQL, oConn,3,1
%>
<table width="720" border="1" cellpadding="0" cellspacing="1">
<tr bgcolor="#FFFFFF">
<td width="50%">Nombre</td>
<td>Gastos</td>
</tr>

<%do while not Rs.eof%>
<%
total = 0
Nxx = Rs.Fields("Nombre")
do while Rs.Fields("nombre")=Nxx
total = total + cInt(rs.Fields("gastos"))
%>
<tr bgcolor="#FFFFFF">
<td height="22">
<%=RS("nombre")%>
</td>
<td>
<%=RS("gastos")%>
</td>
</tr>
<%
Rs.MoveNext
loop
%>
<tr bgcolor="#FFFFFF">
<td height="22">
<div align="right">
<b>Total=
</div>
</td>
<td>
<b><%=total%>
</td>
</tr>
<%loop%>

</table>
<%
RS.Close
Set RS = Nothing
oConn.Close
Set oConn = Nothing
%>


Saludos
  #17 (permalink)  
Antiguo 08/09/2003, 11:49
 
Fecha de Ingreso: julio-2003
Ubicación: mi camioneta?
Mensajes: 87
Antigüedad: 20 años, 10 meses
Puntos: 0
No funciona la pagina tal como la envie...
lo siento, la teoria no se llevo bien con la practica.. saludos
  #18 (permalink)  
Antiguo 08/09/2003, 12:23
Avatar de dobled  
Fecha de Ingreso: enero-2002
Ubicación: Rancagua - Chile
Mensajes: 1.328
Antigüedad: 22 años, 3 meses
Puntos: 2
Asi funciona y ya lo aplique a mi reporte y quedo bien

Código PHP:
       NxSQL ="SELECT gastos, nombre FROM neox Order BY nombre"
       
Set RS Server.CreateObject("ADODB.Recordset")
       
RS.Open NxSQLoConn,3,1
%>
<
table width="720" border="1" cellpadding="0" cellspacing="1">
  <
tr bgcolor="#FFFFFF">
    <
td width="50%">Nombre</td>
    <
td>Gastos</td>
  </
tr>
<%do while 
not Rs.eof%>
<%
if 
Nxx "" Then
   Nxx 
Rs("nombre")
else
   
Nxx  Nxx
end 
if
%>
<%
if 
Nxx <> Rs("nombre"Then
%>
  <
tr bgcolor="#FFFFFF">
    <
td height="22"><div align="right"><b>Total= </div></td>
    <
td><b><%=total%> </td>
<%
total ""%>
  </
tr>
<%
else
end if
%>
  <
tr bgcolor="#FFFFFF">
    <
td height="22"><%=RS("nombre")%>
      </
td>
    <
td> <%=RS("gastos")%> </td>
<%
if 
total "" Then
   total 
Rs("gastos")
else
valor Rs("gastos")
total CINT(total) + CINT(valor)
end If

Nxx Rs("nombre")

Rs.movenext
loop
%>
  <
tr bgcolor="#FFFFFF">
    <
td height="22"><div align="right"><b>Total= </div></td>
    <
td><b><%=total%> </td>
<%
total ""%>

</
table>
<%
RS.Close
Set RS 
Nothing
oConn
.Close
Set oConn 
Nothing
%> 
__________________
Usa títulos específicos y con sentido
En las listas de correo o en los grupos de noticias, la cabecera del mensaje es tu oportunidad de oro para atraer la atención de expertos cualificados en aproximadamente 50 caracteres o menos. No los desperdicies en balbuceos como "Por favor ayúdame" (de "POR FAVOR AYÚDAME!!!" ya ni hablamos). No intentes impresionarnos con lo profundo de tu angustia; mejor usa ese preciado espacio para una descripción lo más concisa posible del problema.
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:42.