Ver Mensaje Individual
  #1 (permalink)  
Antiguo 03/12/2014, 07:29
LoKeD
 
Fecha de Ingreso: abril-2010
Mensajes: 7
Antigüedad: 14 años, 7 meses
Puntos: 0
Pregunta Agrupación por dia, mes o año

Buenos días a todos.
A ver si puedo explicarme claramente y alguien puede ayudarme.

Tengo 2 tablas, una tabla "movimientos almacén" y otra "movimientos almacén temp" y quiero insertar registros agrupados de la tabla "movimientos almacen" a la temporal.
Es decir:
Código SQL:
Ver original
  1. INSERT INTO "movimientos almacen"
  2. SELECT .... FROM "movimientos almacen temp"

Lo que quiero hacer es agrupar los registros de la tabla "movimientos almacén" por "fecha registro", pasandole un parámetro para indicar si agrupar por día, mes o año.
La agrupación la realizo correctamente.
Código SQL:
Ver original
  1. SELECT CASE @filtro
  2.             WHEN 1 THEN DATEPART(DAY,"Registering Date")
  3.             WHEN 2 THEN DATEPART(MONTH,"Registering Date")
  4.             WHEN 3 THEN DATEPART(YEAR,"Registering Date")
  5.         END AS fecha,
  6.         "Location Code", "Zone Code", "Bin Code", "Item No_", SUM("Quantity"),
  7.         SUM("Qty_ (Base)")
  8.     FROM dbo.[CRONUS España S_A_$Warehouse Entry]
  9.     WHERE "Registering Date" BETWEEN '2007-01-01' AND '2008-12-31'
  10.     GROUP BY CASE @filtro
  11.             WHEN 1 THEN DATEPART(DAY,"Registering Date")
  12.             WHEN 2 THEN DATEPART(MONTH,"Registering Date")
  13.             WHEN 3 THEN DATEPART(YEAR,"Registering Date")
  14.         END,
  15.         CASE @filtro
  16.             WHEN 1 THEN DATEPART(MONTH,"Registering Date")
  17.             WHEN 2 THEN DATEPART(YEAR,"Registering Date")
  18.         END,
  19.         CASE @filtro
  20.             WHEN 1 THEN DATEPART(YEAR,"Registering Date")
  21.         END, "Item No_", "Location Code", "Zone Code", "Bin Code"

El problema esta en que esta consulta me devuelve como "Fecha registros" un entero, y a mi me gustaría que me devolviera si es un día pues la fecha completa, si es un mes pues 31/mes/año, y si es un año 31/12/año.

He probado a castear a datetime, pero entonces en el group by también debo hacerlo y ya pierdo la agrupación.

A ver si alguien puede echarme un mano.

Un saludo y gracias de antemano.