Ver Mensaje Individual
  #4 (permalink)  
Antiguo 31/08/2004, 04:16
Atzeneta
 
Fecha de Ingreso: junio-2004
Ubicación: Castellón, España
Mensajes: 98
Antigüedad: 19 años, 10 meses
Puntos: 0
tblFacturas: IdFactura; NoFactura; FechaFactura....

SELECT *, CASE WHEN DATEPART(yyyy, FechaFactura) = DATEPART(yyyy, GetDate()) THEN 'Ejercicio Actual' ELSE 'Ejercicios Anteriores' END AS Ejercicio FROM tblFacturas ORDER BY CASE WHEN DATEPART(yyyy, FechaFactura) = DATEPART(yyyy, GetDate()) THEN 0 ELSE 1 END, FechaFactura

En este ejemplo, tienes una tabla de facturas con la facha de factura y quieres:
1- Un campo donde te ponga 'Ejercicio Actual' si el año de la fecha de factura es el año en curso o 'Ejercicios Anteriores' la fecha de factura es de años anteriores:
CASE WHEN DATEPART(yyyy, FechaFactura) = DATEPART(yyyy, GetDate()) THEN 'Ejercicio Actual' ELSE 'Ejercicios Anteriores' END AS Ejercicio
2- Quieres que te ordene por fecha de factura de menor a mayor pero primero las del año en curso:
ORDER BY CASE WHEN DATEPART(yyyy, FechaFactura) = DATEPART(yyyy, GetDate()) THEN 0 ELSE 1 END, FechaFactura
Creo que con este ejemplo lo verás bastante claro.

Última edición por Atzeneta; 31/08/2004 a las 04:18