FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
El primer registro de tabla sql
hola foro, tengo una tabla con un campo numero que se incrementa automaticamente a esta misma tabla tengo un campo de condicion 'NEW' o 'OLD' ahora bien quiero que sql recorra la tabla busque todo lo que tengan la condicion 'NEW' y me lo ordene por numero, es decir quiero ver solo el primer registro que tiene el numero mas antiguo:
Ejemplo 10 xxxx xxxxx xxxx xxxx Activo xxx xxxx 6 xxxx xxxxx xxxx xxxx Activo xxx xxxx 11 xxxx xxxxx xxxx xxxx Activo xxx xxxx 7 xxxx xxxxx xxxx xxxx Activo xxx xxxx si yo realizo la consulta me trae me debería traer el numero 6 (Registro mas Antiguo dentro de la tabla) pero por algo que talvez estoy obviando me esta trayendo e el numero 7
Si alguien tiene alguna idea que como realizar esta consulta se lo agradeceria |
#2
|
||||
|
||||
La clausula TOP sirver para, de 100 registros, devolver solo los primeros N *que cumplan la condición*.
Esta NO "analiza" los resultados. --- Si tienes un SQL Server relativamente nuevo la forma mas simple es con una clausula window, tipo: https://stackoverflow.com/questions/...w-from-a-group
__________________
El malabarista. |
#3
|
||||
|
||||
También puedes usar la función MIN, ya que lo que quieres es el mínimo valor del campo NUMERO.
Yo creo que esto te puede funcionar:
Esto busca en la tabla el mínimo valor del campo NUMERO según el WHERE (que debería ser 6) y luego hace la JOIN para traerse el resto de campos de la tabla. NOTA: Asumo que ese campo NUMERO debe tener un índice, si no es así añádeselo.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. Última edición por Neftali [Germán.Estévez] fecha: 02-11-2022 a las 09:51:33. |
#4
|
||||
|
||||
Cita:
7 <--- 6 5 ... La consulta correcta sería:
|
#5
|
|||
|
|||
Cita:
Código:
begin With ADOQuery1 do begin Close; Sql.Clear; Open; Sql.Text := 'SELECT * FROM tiket T INNER JOIN (SELECT MIN(Item) AS MINIMO FROM tiket WHERE estatus=NEW') T2 ON T2.MINIMO=T.Item'; ADOQuery1.First; while not ADOQuery1.Eof do begin Label1.Caption := 'A000' + ADOQuery1.fieldbyname('Item').asstring; end; |
#6
|
||||
|
||||
Tienes el open antes de cargar la sentencia SQL
|
#7
|
|||
|
|||
Código:
With ADOQuery1 do begin Close; Sql.Clear; Sql.Text := 'SELECT * FROM tiket T INNER JOIN (SELECT MIN(Item) AS MINIMO FROM tiket WHERE estatus =: 'NEW' ; Open; ADOQuery1.First; while not ADOQuery1.Eof do begin Label1.Caption := 'A000' + ADOQuery1.fieldbyname('Item').asstring; end; |
#8
|
||||
|
||||
Aquí tienes un lío de comillas.
Debería ser
Admás no se bien qué es el "estatus =:" |
#9
|
||||
|
||||
Como te han indicado, las comillas de 'NEW' están mal.
Yo prefiero usar QuotedStr(miDato), siempre que tengo que poner comillas. Además '=:' indica que le pasas un parámetro. O bien sobran las comillas de 'NEW' y tienes que indicar el valor de ese parámetro, o bien sobra ':' |
#10
|
|||
|
|||
Cita:
Código:
procedure TFormCaja.SpeedButton1Click(Sender: TObject); begin With ADOQuery1 do begin Close; Sql.Clear; Sql.Text := 'SELECT * FROM tiket T INNER JOIN (SELECT MIN(Item) AS MINIMO FROM tiket WHERE estatus =: ''NEW'' '; Open; ADOQuery1.First; while not ADOQuery1.Eof do begin Label1.Caption := 'A000' + ADOQuery1.fieldbyname('Item').asstring; end; end; end; Adjunto error NOTA: el estatus es un campo que me dice si es nuevo 'NEW' o ya ha sido utilizado 'OLD' la idea que haga un filtro de todos lo que tengan la condicion 'NEW' Última edición por giantonti1801 fecha: 29-03-2023 a las 21:43:36. |
#11
|
|||
|
|||
Estimado puede utilizar el método indicado por el colega kuan-yiu o usar parametros...
Saludos y buena suerte... |
#12
|
||||
|
||||
Cita:
Cita:
Si tienes un error pero no das detalles de cual es, es difícil saber qué está pasando o darte más información.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Primer registro y ultimo registro | Jose Roman | OOP | 4 | 26-07-2012 20:29:11 |
Consultar el primer registro de una tabla | Jose Roman | SQL | 2 | 11-02-2010 00:30:00 |
selecciona el primer registro de mi tabla!! | maru1981 | OOP | 1 | 01-08-2007 06:35:12 |
Primer registro de un ClientDataSet?? | Berto2003 | Varios | 4 | 13-03-2007 18:24:49 |
Primer Registro | alcides | Varios | 5 | 04-05-2005 18:34:37 |
|