A continuacion les pongo el codigo de una consulta la cual primero pretendo que despliegue el paso de una informacion de una tabla a otra, antes del codigo les pongo tambien la informacion sobre las tablas las cuales estoy trabajando.
----- VentasAcumXDia--------
Fecha ------> Datetime(8)
NumSucursal ------> Tinyint(1)
CodigoInterno -----> int(4)
Piezas---------> Money(8)
----- ReportVenDiarias---------
CodigoInterno-----> int(4)
Descripcion--------> varchar(100)
NumSucursal--------> Tinyint(1)
Sucursal-------->varchar(60)
1---------->Money(8) ---------
2--------->Money(8) -------------
3--------->Money(8) ------------------- EL nombre de estos campos que corresponden al dia es asi, el numero a secas.
...... ------------
31------->Money(8) ------------
Acontinuacion les pongo el codigo
declare @fecha1 datetime
set @fecha1 = '20080201' ------------ yyyymmdd
Select v.CodigoInterno as CodigoInterno
,c.Descripcion as Descripcion
,v.NumSucursal as NumSucursal
,f.Nom_Farma as Sucursal
,SUM(case when day(Fecha) = 1 then Piezas Else 0 End)[1]
,SUM(case when day(Fecha) = 2 then Piezas Else 0 End)[2]
,SUM(case when day(Fecha) = 3 then Piezas Else 0 End)[3]
From Farmacias f
Inner Join
VentasAcumXDia v
On f.Cod_Farmacia = v.NumSucursal
Inner Join
CatProductos c
On v.CodigoInterno = c.Codigo
where CodigoInterno = 19770 and
v.Fecha >= @fecha1 and
v.Fecha < dateadd(dd,1,@fecha1)
GROUP BY
v.CodigoInterno
,c.Descripcion
,v.NumSucursal
,f.Nom_Farnmacia
Halle algo muy curioso que tiene que ver con la siguiente linea del codigo anterior.
v.Fecha < dateadd(dd,1,@fecha1) <----- En este caso la consulta no despliega nada
Pero
v.Fecha < dateadd(dd,2,@fecha1)
v.Fecha < dateadd(dd,3,@fecha1)
v.Fecha < dateadd(dd,5,@fecha1)
En estos casos la consulta despliega el mismo resultado que es:
CodigoInterno!Descripcion!NumSucursal!Sucursal! --- 1 -- ! --- 2 --- ! --- 3 --- !
19770 ----- GalletasO ---- 1 ----- --- Matriz -- .0000 --22.0000 -- .0000
19770 ------ GalletasO ---- 2 -------- Matriz -- .0000 -- 5.0000 -- .0000
19770 ----- GalletasO ---- 3 ---- ---- Matriz -- .0000 -- 1.0000 --.0000
los datos insertados en la columna 2 son correctos, pero solo inserta el numero de piezas de ese dia.
no importa si modifico esa linea de esta manera
v.Fecha < dateadd(dd,3,@fecha1) o v.Fecha < dateadd(dd,4,@fecha1) o etc
muestra lo mismo solamente inserta los datos que son los correctos para el dia 2 , pero los demas dias los pone en 0, siendo que si hay piezas vendidas ese dia.
2008/02/01 --- 1---- 19770-------13
2008/02/01 ----2-----19770--------7
2008/02/01 ----3-----19770--------1
2008/02/02 --- 1---- 19770-------22
2008/02/02 ----2-----19770--------5
2008/02/02 ----3-----19770--------1
2008/02/03 --- 1---- 19770-------16
2008/02/03 ----2-----19770--------3
2008/02/03 ----3-----19770--------1
La info de arriba , es la info que se encuentra en la tabla VentasAcumXDia, viendola podemos notar que el codigo en el caso del dia 2 si hace lo correcto puesto las cantidades son las que se vendieron ese dia, el detalle es que no importa que dia ponga en la linea escrita arribita solo inserta lo del dia 2 y no hace nada con los otros dias.
Espero contar con su ayuda para ver que es lo que esta pasando con este detalle, de nueva cuenta gracias por su tiempo.
Saludos