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

mostrar solo el ultimo dato de mi bd?

Estas en el tema de mostrar solo el ultimo dato de mi bd? en el foro de ASP Clásico en Foros del Web. Hola!!!...otra vez necesito su ayuda!!!...tengo una consulta en la cual me despliega una serie de datos: code, nombre, peso, etc...los datos se van introduciendo cada ...
  #1 (permalink)  
Antiguo 03/11/2006, 10:57
 
Fecha de Ingreso: septiembre-2006
Mensajes: 161
Antigüedad: 17 años, 8 meses
Puntos: 0
Pregunta mostrar solo el ultimo dato de mi bd?

Hola!!!...otra vez necesito su ayuda!!!...tengo una consulta en la cual me despliega una serie de datos: code, nombre, peso, etc...los datos se van introduciendo cada seg aprox a mi bd, y yo quiero generar una tabla de una sola fila y los campos a mostrar en la cual solo me muestre el ultimo dato que se acaba de introducir a mi bd, siempre y cuando cumpla con la condicion de la consulta...me explico?...estoy manejando un refresh, y lo de la tabla pensé que lo podía arreglar con el recorset.MoveLast, pero me marca un error, quizá la solución esté por otro lado...aquí está el código (garcias!!):


<%
Response.Expires = 0
Response.Buffer = True
'la siguiente linea escribe el encabezado... produciendo el refresh.
Response.AddHeader "Refresh", "1"
%>

<%
vFecha1= Day(Now) & "/" & Month(Now) & "/" & Year(Now) & " " & "00:00"
vFecha2= Day(Now) & "/" & Month(Now) & "/" & Year(Now) & " " & "23:59"

'Conección con la BD
sConnStr = "Driver={SQL Server};Server=MGV;Database=Rssql;UID=sa;Password= sa;"
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open sConnStr


'Crear tabla temporal
Set rsMon = Server.CreateObject("ADODB.Recordset")

' *MONITOREO
'Ligamos la tabla temporal a la vista de la BD
strSQL_N = "SELECT CODE, NAME, EQUIPMENT, SIDEWALL, AVG(WEIGHT) AS PPROM, WAREHOUSE, REJECT, MIN(FECHC) AS FECHMIN FROM ESCANER1 WHERE FECHC >='" & vFecha1 & "' AND FECHC <='" & vFecha2 & "' GROUP BY CODE, NAME, EQUIPMENT, SIDEWALL, WAREHOUSE, REJECT HAVING (CODE > '0') AND (NAME > '0') AND (EQUIPMENT > '0') AND (WAREHOUSE = 0) AND (REJECT = 0) ORDER BY CODE"

'Abre tabla temporal
rsMon.ActiveConnection = objConn
rsMon.Open strSQL_N, objConn,2,2
rsMon.Requery
%>

<table width="564" height="62" border="1" align="center" bordercolor="#333333" bgcolor="#FFFFFF">
<tr align="center" bgcolor="#F4F4F4">
<th width="75" height="32" align="center" valign="middle" bordercolor="#FFFFFF" bgcolor="#999999" scope="col"><div align="center" class="Estilo12">C&Oacute;DIGO</div></th>
<th width="185" bordercolor="#FFFFFF" bgcolor="#999999" scope="col"><div align="center" class="Estilo5 Estilo4"><strong>MEDIDA</strong></div></th>
<th width="85" bordercolor="#FFFFFF" bgcolor="#999999" scope="col"><div align="center" class="Estilo12">CLIENTE </div></th>
<th width="90" valign="middle" bordercolor="#FFFFFF" bgcolor="#999999" scope="col"><div align="center">SIDEWALL</div></th>
<th width="95" valign="middle" bordercolor="#FFFFFF" bgcolor="#999999" scope="col"><div align="center">PESO PROMEDIO</div></th>
<% do while not rsMon.EOF%>
<tr bgcolor="#F4F4F4">
<td width="75" height="22" align="center" valign="middle"><div align="center" class="Estilo19"><%=rsMon("CODE")%></div></td>
<td width="185"><div align="center" class="Estilo19"><%=rsMon("NAME")%></div></td>
<td width="85"><div align="center" class="Estilo19"><%=rsMon("EQUIPMENT")%></div></td>
<td width="90" bgcolor="#F4F4F4"><div align="center"><span class="Estilo19"><%=rsMon("SIDEWALL")%></span></div></td>
<td width="95" bgcolor="#F4F4F4"><div align="center"><span class="Estilo19"><%=rsMon("PPROM")%></span></div></td>
</tr>
<% rsMon.MoveNext
loop%>
</table>
  #2 (permalink)  
Antiguo 03/11/2006, 11:05
Avatar de 3pies
Colaborador
 
Fecha de Ingreso: diciembre-2003
Ubicación: Desde una destilería
Mensajes: 2.584
Antigüedad: 20 años, 6 meses
Puntos: 144
Para sacar la última id introducida (creo que solo funciona en los productos Microsoft: access, SQL server, etc...):

SELECT TOP 1 id, campo2, campo3, campo4 FROM tu_tabla WHERE ...

Salu2
  #3 (permalink)  
Antiguo 03/11/2006, 11:08
Avatar de Korku  
Fecha de Ingreso: noviembre-2003
Ubicación: En un lugar oscuro...
Mensajes: 688
Antigüedad: 20 años, 6 meses
Puntos: 5
Hola cielo,

Te aconsejaría esta consulta:

SELECT * FROM tabla WHERE id = (SELECT MAX(id) FROM tabla)

así solo muestra un resultado.

Espero que te haya ayudado,

Besiños :)
__________________
Carpe diem quam minimum credula postero.


http://www.programador-freelance.es
  #4 (permalink)  
Antiguo 03/11/2006, 11:28
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Realmente depende mucho de como este tu tabla, regularmente si tienes un id numerico o un campo fecha con orden cronologico puedes hacer como ya te sugirieron un

SELECT TOP 1 campos FROM tabla ORDER BY [id][fecha] DESC


Saludos
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #5 (permalink)  
Antiguo 03/11/2006, 14:50
 
Fecha de Ingreso: septiembre-2006
Mensajes: 161
Antigüedad: 17 años, 8 meses
Puntos: 0
Mil Graciaaas u_goldman!!!

SELECT TOP 1 campos FROM tabla ORDER BY [id][fecha] DESC

Esta fue la instruccion que utlicé y la que me funcinó perfectamente...problema solucionado!!!
  #6 (permalink)  
Antiguo 03/11/2006, 17:55
Avatar de Korku  
Fecha de Ingreso: noviembre-2003
Ubicación: En un lugar oscuro...
Mensajes: 688
Antigüedad: 20 años, 6 meses
Puntos: 5
Me alegro que te funcione. De todas maneras, esta consulta no es válida para algunas bases de datos.

Un saludo
__________________
Carpe diem quam minimum credula postero.


http://www.programador-freelance.es
  #7 (permalink)  
Antiguo 03/11/2006, 18:27
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Cita:
Iniciado por Korku Ver Mensaje
Me alegro que te funcione. De todas maneras, esta consulta no es válida para algunas bases de datos.

Un saludo
Si, TOP no es ANSI, pero esta claro que esta trabajando con SQL, asi que creo que es mejor que crear un producto cartesiano inmenso mediante un subquery y ademas traer el maximo...demasiado para algo tan simple. con eso es mas que suficiente para mary* o quizas deberia llamarla "corazon"?
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
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:20.