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
INSERT INTO "movimientos almacen" 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
SELECT CASE @filtro WHEN 1 THEN DATEPART(DAY,"Registering Date") WHEN 2 THEN DATEPART(MONTH,"Registering Date") WHEN 3 THEN DATEPART(YEAR,"Registering Date") END AS fecha, "Location Code", "Zone Code", "Bin Code", "Item No_", SUM("Quantity"), SUM("Qty_ (Base)") FROM dbo.[CRONUS España S_A_$Warehouse Entry] WHERE "Registering Date" BETWEEN '2007-01-01' AND '2008-12-31' GROUP BY CASE @filtro WHEN 1 THEN DATEPART(DAY,"Registering Date") WHEN 2 THEN DATEPART(MONTH,"Registering Date") WHEN 3 THEN DATEPART(YEAR,"Registering Date") END, CASE @filtro WHEN 1 THEN DATEPART(MONTH,"Registering Date") WHEN 2 THEN DATEPART(YEAR,"Registering Date") END, CASE @filtro WHEN 1 THEN DATEPART(YEAR,"Registering Date") 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.