Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Buenas Tardes,
Acudo a ustedes con el objetivo de clarar una situación que se me esta presentando con un manejo de fechas. Voy a intentar ponerlos en contexto para ver si me pueden guiar.
Estoy realizando una extracción de datos de dos bases de datos cuyas tablas son exactamente iguales en su estructura, y cada extracción la almaceno en un QVD diferente (QVD A - QVD B). Al momento de llamar un campo fecha que se encuentra en el QVD A funciona bien, es decir la fecha se muestra en formato numérico y puedo trabajar realizando comparaciones entre fechas sin problema, pero cuando realizo la misma consulta para el QVD B el campo fecha lo muestra no como numero si no en la representación de fecha y no realiza comparativas, es como si el campo fuera un tipo texto.
El código con el que se extraen los datos es el siguiente:
//Informacion de Ventas
Ventas:
LOAD Compania,
Rowid_CO,
Rowid_Cliente,
Rowid_Sucursal,
Rowid_Referencia,
Referencia,
Factura,
Fecha,
Cantidad_Vendida,
ValorBruto,
Descuento;
SQL SELECT f350_id_cia Compania
,f350_id_co Rowid_CO
,f200_rowid Rowid_Cliente
,f461_id_sucursal_fact Rowid_Sucursal
,f120_rowid Rowid_Referencia
,f120_referencia Referencia
,ltrim(rtrim(f350_id_tipo_docto)) + '-' + dbo.rpad(f350_consec_docto,8,' ') Factura
// ,convert(date,f470_id_fecha) Fecha
,convert(nvarchar(10), f470_id_fecha, 103) as Fecha
,CAST(sum(case when f461_ind_nat = 1 then
case when f120_id_unidad_inventario = 'KILO' then
(f470_cant_1)
else
(f470_cant_1 * f122_peso)
end
else
case when f120_id_unidad_inventario = 'KILO' then
-(f470_cant_1)
else
-(f470_cant_1 * f122_peso)
end
end) as varchar(28)) as Cantidad_Vendida
,f470_vlr_bruto ValorBruto
,f470_vlr_dscto_linea + f470_vlr_dscto_global Descuento
FROM t350_co_docto_contable
INNER JOIN t470_cm_movto_invent ON f350_rowid= f470_rowid_docto_fact AND f470_id_cia = f350_id_cia
INNER JOIN t120_mc_items ON f470_rowid_item_ext = f120_rowid
INNER JOIN t122_mc_items_unidades ON f122_id_cia = f120_id_cia and f122_rowid_item = f120_rowid and f122_id_unidad = f120_id_unidad_inventario
WHERE f350_id_cia = $(vSetCia1)
AND f470_ind_estado_cm <> 2
AND f350_ind_estado <> 0
AND f350_fecha BETWEEN '01/01/2014' AND convert(nvarchar(10), getdate()-1,103)
AND f120_id_tipo_inv_serv LIKE 'PT%'
GROUP BY f350_id_cia, f350_id_co,
f350_id_tipo_docto,f350_consec_docto,
f200_rowid, f120_rowid, f350_rowid_docto_base, f470_vlr_bruto,
f350_fecha, f120_id_tipo_inv_serv, f120_referencia,
f461_id_sucursal_fact,
f350_rowid_tercero, f470_vlr_dscto_linea ,f470_vlr_dscto_global,
f350_fecha, f470_id_fecha , f461_id_sucursal_fact
ORDER BY f350_id_co;
STORE Ventas into $(vDirectorioQVD)Base\Ventas1.qvd;
Lo único que cambia al momento de efectuar cada consulta es la cadena de conexión a la base de datos.
A continuación muestro una imagen de los campos fecha de cada QVD, donde fecha22 pertenece al QVD A (correcto) y Fecha al QVD B (incorrecto).
Ya intente darle formato a la fecha en el momento de realizar la consulta pero me sigue mostrando igual la fecha. Al igual que el QVW de transformación poner los campos fecha con un mismo formato pero igual no hace bien la asociación de datos.
Quedo atento a sus comentarios
Gracias por su atención.
Saludos,
Raúl
Hola Raúl,
Tienes que igualar el formato de fechas, las dos numéricas o las dos DD/MM/YYYY
Para las dos numéricas en el LOAD pon Num(Fecha) as Fecha
Para las dos de tipo fecha lo que dijo Jordi
Saludos,
Joaquín
Hola Raúl,
En el LOAD cuando cargues Fecha pon Date(Fecha,'DD/MM/YYYY') as Fecha
Saludos,
Gracias por tu pronta respuesta, efectivamente con tu linea de código queda con el formato de fecha 'DD/MM/YYYY' pero no logro que haga una buena comparación, pero tengo duda es porque el campo fecha del QVD B no queda como formato fecha, es como si el sistema lo interpretara como texto, me gustaria que quedara como se ve en el campo fecha22 de la imagen que coloque en la formulacion de la pregunta.
Nuevamente gracias por tu interés y respuesta.
Saludos.
Hola,
Prueba entonces con Date#
Saludos
Hola Raúl,
Tienes que igualar el formato de fechas, las dos numéricas o las dos DD/MM/YYYY
Para las dos numéricas en el LOAD pon Num(Fecha) as Fecha
Para las dos de tipo fecha lo que dijo Jordi
Saludos,
Joaquín
Buenos días,
Muchas gracias por sus respuestas, Lo probé como me indico Jordi y el sistema no realizaba bien las asociaciones, aunque cuando consultaba los campos efectivamente los mostraba con los formatos indicados.
Luego probé la opción que me dio JoaquinLR de colocar LOAD pon Num(Fecha) as Fecha y ahí el sistema si realizo las asociaciones como las necesitaba.
Les agradezco a los dos su tiempo para responder. Muchas gracias por pertenecer a esta comunidad y tomarse el tiempo para dar respuestas a dudas como esta.
Saludos,
Raúl
Hola Raúl:
De nada ... una parte importante de mi conocimiento lo he adquirido en esta comunidad.
Saludos
Joaquín
Hola Raul,
Gracias a ti por compartir. Creí que con fecha ya se entenderían pero mejor así sabes que tienes más maneras de hacer las cosas.
Un saludo,