Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 22-10-2007
trulli trulli is offline
Miembro
 
Registrado: oct 2007
Posts: 10
Poder: 0
trulli Va por buen camino
Ordenar Consulta sin Referencia de Columna

Que Tal.
Tengo una Duda como puedo Ordenar una Consulta sin tener ningun campo de referencia en ella? ejemplo:

Select condicion,count(condicion) from articulos group by condicion

Condicion puede ser (Malo,Regular,Bueno,MuyBueno,Excelente) es un string

cuando agrego al final order by condicion me devuelve los campos en orden alfabetico y quiero que me los regrese en el orden
malo
regular
bueno
...
como puedo hacer esto he agregado una tabla llamada detalle
que contiene los campos condicion e indice ejemplo
malo 1
regular 2
no se si uniendolas para poder ordenarlas por el campo indice puedo obtener lo que quiero o existe algun parametro en el order by y decirle como quiero el orden.

espero me di a entender gracias.
Responder Con Cita
  #2  
Antiguo 22-10-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
La tabla detalle la llamaría condicion con dos campos (condicion de tipo string, e IdCondicion de tipo integer o autoincrement).

En la tabla productos añades una clave ajena (foránea) llamada idCondicion que será de tipo integer.

Ahora no tienes la condicion en un string (en la tabla artículos), pero puedes crear una vista, o un sql que una ambas tablas:

Código SQL [-]
select a.Nombre, c.condicion
from articulos a inner join condicion c on a.idcondicion = c.idcondicion
order by c.idcondicion  ****
los asteriscos puedes sustituirlos por el tipo de ordenamiento Ascendente "Asc" o descendente "Desc"

Para que el usuario pueda asignar a un artículo su condición, usa un DBLookUpCombo.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #3  
Antiguo 23-10-2007
trulli trulli is offline
Miembro
 
Registrado: oct 2007
Posts: 10
Poder: 0
trulli Va por buen camino
Gracias amigo Lepe

Intentare hacer de ese modo, mas o menos lo que ocupo se veria asi:

select a.Nombre, c.condicion,count(a.Nombre)
from articulos a inner join condicion c on a.idcondicion = c.idcondicion group by a.Nombre order by c.idcondicion desc
Responder Con Cita
  #4  
Antiguo 23-10-2007
afxe afxe is offline
Miembro
 
Registrado: jul 2004
Ubicación: Malaga-España
Posts: 273
Poder: 20
afxe Va por buen camino
Otro modo... pero no lo he probado

Una vez hice algo parecido, no lo recuerdo bien, pero era algo así (firebird 2.0):
Código SQL [-]
SELECT Condicion, iif(Condicion= 'Malo', 1, 
                         iif(Condicion='Regular', 2, 
                         iif(condicion='Bueno', 3 ) ) ),
           COUNT(Condicion)
FROM articulos
GROUP BY 1, 2
ORDER BY 2;

Ya me contarás....
Responder Con Cita
  #5  
Antiguo 25-10-2007
trulli trulli is offline
Miembro
 
Registrado: oct 2007
Posts: 10
Poder: 0
trulli Va por buen camino
Que Tal afxe

he copiado y pegado lo que me comentas, pero no a funcionado, parece logica esa solucion, pero no funciona posiblemente por error de sintaxis

Gracias
Responder Con Cita
  #6  
Antiguo 25-10-2007
Avatar de RONPABLO
[RONPABLO] RONPABLO is offline
Miembro Premium
 
Registrado: oct 2004
Posts: 1.514
Poder: 21
RONPABLO Va por buen camino
que tal de esta forma

Código SQL [-]
SELECT Condicion, 
case Condicion 
   when 'Malo' then 1 
   when 'Regular' then 2
   when 'Bueno' then 3
end Ordenador, 
COUNT(Condicion) Total
FROM articulos
GROUP BY 1, 2
ORDER BY 2;
Responder Con Cita
  #7  
Antiguo 25-10-2007
trulli trulli is offline
Miembro
 
Registrado: oct 2007
Posts: 10
Poder: 0
trulli Va por buen camino
RONPABLO

Barbaro, Genial amigo esa es una Muy buena solucion simple y sin complicaciones, Mil Gracias
Responder Con Cita
  #8  
Antiguo 25-10-2007
Avatar de RONPABLO
[RONPABLO] RONPABLO is offline
Miembro Premium
 
Registrado: oct 2004
Posts: 1.514
Poder: 21
RONPABLO Va por buen camino
jeje gracias, pero creo que el de la idea fue afxe, yo solo la adapte a firebird
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
Ordenar un DBGrid por una columna por defecto JM75 OOP 2 04-05-2007 12:46:53
Ordenar Listview por columna Coco_jac Varios 10 03-01-2006 19:03:20
Ordenar una MySQLQuery al dar clic en columna de RXDBGrid gilberto_1126 SQL 9 09-11-2005 16:25:57
Como Ordenar Un Tdbgrid Con Clic En Columna cmena Varios 4 03-05-2004 16:52:34
Como Ordenar Un Tdbgrid Con Clic En Columna cmena Conexión con bases de datos 2 30-04-2004 19:01:12


La franja horaria es GMT +2. Ahora son las 19:40:50.


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