Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Como ordenar esto??

Estas en el tema de Como ordenar esto?? en el foro de Bases de Datos General en Foros del Web. Hola, buenos dias a todos. Un cliente me pide que listemos los productos de su pagina web de manera que salgan ordenados por precio pero ...
  #1 (permalink)  
Antiguo 11/01/2011, 05:01
 
Fecha de Ingreso: febrero-2010
Mensajes: 157
Antigüedad: 14 años, 2 meses
Puntos: 5
Como ordenar esto??

Hola, buenos dias a todos.

Un cliente me pide que listemos los productos de su pagina web de manera que salgan ordenados por precio pero a su vez mueva los que no tienen stock a las ultimas posiciones, no se como pillarlo, pues yo lo ordeno por precio y stock pero no lista como quisiera

Ejemplo:

producto 1 -- stock 5 -- precio 10
producto 2 -- stock 14 -- precio 14
producto 3 -- stock 3 -- precio 18
producto 4 -- stock 52 -- precio 20
producto 5 -- stock 0 -- precio 5
producto 6 -- stock 0 -- precio 8

haber si me echan una mano....

Gracias
  #2 (permalink)  
Antiguo 11/01/2011, 06:05
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: Como ordenar esto??

No dices si el orden por precio es ascendente o descendente. Te lo he puesto ASC
SELECT producto, stock, precio, IF(stock > 0, 1, 2) ordstock FROM tutabla ORDER BY ordstock, precio
  #3 (permalink)  
Antiguo 11/01/2011, 06:57
 
Fecha de Ingreso: febrero-2010
Mensajes: 157
Antigüedad: 14 años, 2 meses
Puntos: 5
Respuesta: Como ordenar esto??

imposible, no reconoce el campo ordstock a la hora de ordenar, pero si lo lista si lo omito

Base de datos access

select cod, IIF( dispo > 0, 1, 0) as ordstock from catalogo order by ordstock asc
  #4 (permalink)  
Antiguo 11/01/2011, 08:58
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: Como ordenar esto??

Esto me funciona en mi Access 2003:
SELECT catalogo.id, catalogo.disp, IIf([disp]>0,1,2) AS ord, catalogo.cod
FROM catalogo
ORDER BY IIf([disp]>0,1,2), catalogo.cod;
  #5 (permalink)  
Antiguo 11/01/2011, 09:03
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 4 meses
Puntos: 447
Respuesta: Como ordenar esto??

Buenos días yeyowave:

No hay necesidad de agregar el campo en el select, puedes hacer el cálculo directamente en la sentencia ORDER BY

Código SQL:
Ver original
  1. SELECT T.*
  2. FROM TuTabla T
  3. ORDER BY IIF (T.Stock = 0, 2, 1), T.Precio

El resultado de esto es el siguiente:

Código:
Producto|Stock|Precio
--------------------------------
2|14|3
1|5|10
3|3|18
4|52|20
5|0|5
6|0|8
Es decir, primero ordena los aquellos productos que tengan un stock diferente de cero (ordenándolos por precio de menor a mayor) y al final lista los productos que tienen stock igual a cero (ordenándolos también por precio de menor a mayor)

espero que te sirva el código

Saludos.
Leo
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 10:38.