Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 19-07-2007
Avatar de MaMu
MaMu MaMu is offline
Miembro
 
Registrado: abr 2006
Ubicación: Argentina
Posts: 863
Poder: 19
MaMu Va por buen camino
Duda con ORDER BY

Resulta que necesito visualizar en un DBGrid los datos de una tabla, lo cual consigo por medio de esta consulta:

Código Delphi [-]
  QTareasDiarias.Close;
  QTareasDiarias.SQL.Clear;
  QTareasDiarias.SQL.Add('select * from tareasdiarias where mes='+IntToStr(mes)+' and año='+IntToStr(anio)+' order by tarea, tld');
  QTareasDiarias.ExecSQL;
  QTareasDiarias.Open;

El tema es que el campor "tarea" es un string, pero el "tld" es booleano, asi que unicamente me ordena por tarea.

Como puedo hacer para que, respetandome el orden alfabetico, ademas, visualize primero los ordenados alfabeticamente y que ademas tld=True?

No se me ocurre como hacerlo.

Saludos
__________________
Código Delphi [-]
 
try 
ProgramarMicro(80C52,'Intel',MnHex,True);
except
On Exception do
MicroChip.IsPresent(True);
end;
Responder Con Cita
  #2  
Antiguo 19-07-2007
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
No entiendo cuál es la pregunta. Si lo que quieres es que aparezcan primero los true y luego los false basta agregar la directiva desc:

Código SQL [-]
order by tarea, tld desc

Esto sigue ordenando primero por tarea, y luego por tld.

// Saludos
Responder Con Cita
  #3  
Antiguo 19-07-2007
Avatar de MaMu
MaMu MaMu is offline
Miembro
 
Registrado: abr 2006
Ubicación: Argentina
Posts: 863
Poder: 19
MaMu Va por buen camino
Cita:
Empezado por roman
No entiendo cuál es la pregunta. Si lo que quieres es que aparezcan primero los true y luego los false basta agregar la directiva desc:


Código SQL [-]
order by tarea, tld desc





Esto sigue ordenando primero por tarea, y luego por tld.

// Saludos
Lo he probado, pero no me ordena, osea, alfabeticamente si, pero los True y False, siguen mezclados.
__________________
Código Delphi [-]
 
try 
ProgramarMicro(80C52,'Intel',MnHex,True);
except
On Exception do
MicroChip.IsPresent(True);
end;
Responder Con Cita
  #4  
Antiguo 19-07-2007
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.561
Poder: 25
egostar Va camino a la fama
Hola y si cambias esto

Código SQL [-]
  
order by tarea, tld

por esto

Código SQL [-]
  
order by tld, tarea

Salud OS.
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #5  
Antiguo 19-07-2007
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 24
ContraVeneno Va por buen camino
Y:
Código Delphi [-]
 QTareasDiarias.ExecSQL; //esto no es necesario
 QTareasDiarias.Open;

ExecSQL se utiliza cuando alguna instrucción ejecuta una acción (update, delete, drop, insert, etc)

Si solo es una consulta que regresa algún registro, se puede utilizar:
Código Delphi [-]
 QTareasDiarias.Open;

//o tambien aunque menos recomendable:
 QTareasDiarias.Active := True;
__________________

Responder Con Cita
  #6  
Antiguo 20-07-2007
Avatar de MaMu
MaMu MaMu is offline
Miembro
 
Registrado: abr 2006
Ubicación: Argentina
Posts: 863
Poder: 19
MaMu Va por buen camino
Cita:
Empezado por ContraVeneno
Y:

Código Delphi [-]
QTareasDiarias.ExecSQL; //esto no es necesario
QTareasDiarias.Open;





ExecSQL se utiliza cuando alguna instrucción ejecuta una acción (update, delete, drop, insert, etc)

Si solo es una consulta que regresa algún registro, se puede utilizar:

Código Delphi [-]
QTareasDiarias.Open;

//o tambien aunque menos recomendable:
QTareasDiarias.Active := True;


SOLUCIONADO

Efectivamente el problema era el ExecSql.
__________________
Código Delphi [-]
 
try 
ProgramarMicro(80C52,'Intel',MnHex,True);
except
On Exception do
MicroChip.IsPresent(True);
end;
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
duda sobre order by berfer Firebird e Interbase 3 18-12-2006 20:08:58
Order by restringido Supermagayin SQL 9 21-10-2005 04:48:59
Tab Order kepacha Varios 5 31-01-2005 13:32:40
Order by VRO SQL 6 31-08-2004 08:17:05
Order by ...... chutipascal Firebird e Interbase 8 24-06-2003 14:46:21


La franja horaria es GMT +2. Ahora son las 05:45:29.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi