• Lunes 18 de Noviembre de 2024, 06:59

Autor Tema:  Problema Con El Paso De Info De Una Tabla A Otra  (Leído 1798 veces)

DrakenRG

  • Nuevo Miembro
  • *
  • Mensajes: 5
    • Ver Perfil
Problema Con El Paso De Info De Una Tabla A Otra
« en: Jueves 7 de Febrero de 2008, 23:46 »
0
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

ElNapster

  • Moderador
  • ******
  • Mensajes: 727
    • Ver Perfil
Re: Problema Con El Paso De Info De Una Tabla A Otra
« Respuesta #1 en: Viernes 8 de Febrero de 2008, 22:01 »
0
Cual es tu duda en especifico ?
"Somos lo que imaginamos ser"
-- --------------------------------------------------------------
-ElNapster
-Designer / Developer Software
-GuaTemALa



DrakenRG

  • Nuevo Miembro
  • *
  • Mensajes: 5
    • Ver Perfil
Re: Problema Con El Paso De Info De Una Tabla A Otra
« Respuesta #2 en: Sábado 9 de Febrero de 2008, 18:01 »
0
Mi duda es , porque solamente inserta los datos en el campo 2 y los demas campos 1,3 me los deja en ceros.
Agradecido de antemano Saludos

DrakenRG

  • Nuevo Miembro
  • *
  • Mensajes: 5
    • Ver Perfil
Re: Problema Con El Paso De Info De Una Tabla A Otra
« Respuesta #3 en: Martes 12 de Febrero de 2008, 17:36 »
0
Muy buenos dias a todo el que lee esto. he estado tratando de encontrar una solucion a este problema, pero hasta ahora solo he podido descubrir lo siguiente.

En el codigo la fecha se maneja de la siguiente forma:
--------------------------------------------------------------------------------
declare @fecha1 datetime
set @fecha1 = '20080201' ------------ yyyymmdd
---------------------------------------------------------------------------------
Sinembargo a la hora de ejecutar el codigo en el analizador de Consultas, me di cuenta que me interpreta la fecha de la siguiente manera:
yyyyddmm

Es decir que 20080102 lo interpreta como el primero de feberero.

Otro dato curioso es que en mi Tabla AcumVentasXDia la fecha tiene el siguiente formato:

mmddyyyy
02/01/2008
----------------------------------------------------------------------------------------------------------------------
A que voy con todo esto, a continuacion se los explicare:

Al utilizar en el codigo el formato yyyyddmm , al ejecutar la consulta se despliegan los datos del dia, pero no importa que dia yo ponga se desplegara la info de ese dia pero siempre en el campo '2' , los demas dias siempre quedan en 0s.

No se que ocurra en los case, porque no esta tomando en cuenta el 1 ,3....... 31 y solo este desplegando la info en el campo '2'.

Aqui les mostrare un ejemplo de lo que me refiero:

Cuando utilizo 20080102 <---- formato yyyyddmm

CodigoInterno!Descripcion!NumSucursal!Sucursal! --- 1 -- ! --- 2 --- ! --- 3 --- !
19770 ----- GalletasO ---- 1 ----- --- Matriz -- .0000 --13.0000 -- .0000
19770 ------ GalletasO ---- 2 -------- Matriz -- .0000 -- 7.0000 -- .0000
19770 ----- GalletasO ---- 3 ---- ---- Matriz -- .0000 -- 1.0000 --.0000

Estos datos son los correctos pero deberian ir en el dia 1

cuando utilizo 20080202 <------------YYYYDDMM

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

Esta info es la correcta para el dia 2 y si la despliega ahi en el campo 2, pero porque todo lo despliega en ese campo.

Si utilizo 2008/03/02 <-----------YYYYDDMM

CodigoInterno!Descripcion!NumSucursal!Sucursal! --- 1 -- ! --- 2 --- ! --- 3 --- !
19770 ----- GalletasO ---- 1 ----- --- Matriz -- .0000 --16.0000 -- .0000
19770 ------ GalletasO ---- 2 -------- Matriz -- .0000 -- 3.0000 -- .0000
19770 ----- GalletasO ---- 3 ---- ---- Matriz -- .0000 -- 1.0000 --.0000

La informacion correcta del dia 3 pero la despliega en el campo 2.

Es por eso que digo no importa que dia sea, no se que pasa en los case que omite todos los demas y solamente pasa la info al campo '2' .

Por si se preguntan que pasa si utilizo el formato YYYYMMDD , la respuesta es , no muestra la informacion , solo regresa el nombre de los campos.

Espero explicarme bien, en verdad que me gustaria saber mas de SQL y no molestarles, recurro a ustedes porque obviamente saben mucho mas que yo y porque tambien a lo mejor varias personas pueden tener problemas similares.
Espero puedan ayudarme en verdad les agradeceria mucho, gracias por su atencion y disculpas por dar tanta lata
Saludos!!!
:ayuda: