on 10-12-2009 11:45 PM
Veran, estoy ejecutando un procedimiento a traves de
DECLARE @INICIO DATETIME
DECLARE @FIN DATETIME
set @INICIO=(SELECT top 1 T0.TaxDate FROM dbo.OINV T0 WHERE T0.TaxDate = '[%0]')
set @FIN=(SELECT top 1 T0.TaxDate FROM dbo.OINV T0 WHERE T0.TaxDate = '[%1]')
EXEC SBOAsisteLibros_Compras_Digital @INICIO, @FIN
Este procedimiento pretende halar ciertos documentos en un rango de fechas, el problema que tengo es que, en el mes de julio me aparecen datos, y en el mes de agosto ya no, luego me vueven a aparecer datos en septiembre
Me podrian decir que estare haciendo mal?
o como puedo solucionarlo
Hola...
Otra cosa, es necesario que se indique si al ingresar los datos de fecha en las variables de entrada, esto se hace manualmente o se está seleccionando fechas propuestas por Sistema.
Te comento de un caso que en alguna oportunidad ví....
Había un informe, que consideraba variables de entrada fecha...lo que se hacía era entonces ingresar el rango de fechas mensual, es decir, del 01/mm/yy al 31/mm/yy
Este ingreso de fechas era manual, es decir, nadie se preocupaba de validar que
Sucedía que en un mes en particular no había información, debido a que el día 01 no habían transacciones por ser un día "feriado", por ende, lo que trato de decirte es que en estos casos, el hecho de ingresar una fecha que no es reconocida como variable de entrada válida, hace que no aparezcan resultados.
Espero te sea de ayuda
Saludos Cordiales,
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
He probado ingresar el rango de fechas de manera manual, y seleccionando los sugeridos por el sistema (boton valores existentes), y sigue sin mostrarme datos para el mes de agosto.
Si los datos tienen la misma estructura en todos los meses, porque para este mes en particular no me los puede mostrar, es decir, porque para julio si funciona y para agosto no?
Saludos a todos
Veran, encontre un dato curioso para el query que les he venido comentando
Resulta que, no existen datos para los dias 1 y 2 de agosto, unicamente aparecen datos del 3 - 31 de agosto
Entonces, aqui el dato curioso; si al reporte le coloco rango de 01/08/2009 - 31/08/2009 no me muestra datos el query
pero, si coloco el rango de 03/08/2009 - 31/08/2009 si me aparecen los datos tal cual me los muestra el query manager
Probe con un between y luego con >= y <= y de todos modos no me respeta los rangos, pero, ya es un avance!
respondi esto en el POST que cerraste, para que lo consideres
Tambien puedes corroborar las consultas realizadas con SQL Server Profiler (Performance Tools), puede que un parametro este mal formateado.
La otra posibilidad es que alguna columna que estes concatenando te retorne NULL y que devuelva toda la fila concatenada en NULL.
Saludos, Jorge
Hola
Si indicaras el procedimiento, a lo mejor se podria analizar y dar alguna luz sobre lo que origina el supuesto error
Saludos,
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Gracias por tu ayuda. Este es el procedimiento
SELECT Libro + '|' + TipoDocto + '|' + ISNULL(Serie,'0') + '|' + REPLACE(NoDocto,'-','') + '|' +
CONVERT(NVARCHAR, FechaDocto,103) + '|' + NIT + '|' +
REPLACE(Nombre,',','') + '|' + TipoCompra + '|' + '|' +
NoRegistro + '|' + NoCedula + '|||' + CONVERT(NVARCHAR,ca,126) + '|' +
CONVERT(NVARCHAR,sa,126) + '|' + CONVERT(NVARCHAR,cna,126) + '|' + CONVERT(NVARCHAR,sna,126) + '|' +
CONVERT(NVARCHAR,c1,126) + '|' + CONVERT(NVARCHAR,c4,126) + '|' + CONVERT(NVARCHAR,impuesto,126) AS Fila
FROM (
select 'C' Libro, TipoDocto, CASE WHEN Serie = '' THEN '0'
WHEN Serie IS NULL THEN '0'
ELSE Serie
END Serie, NoDocto, FechaDocto,
case when TipoDoctoMaestro <> 'E' then ISNULL(NIT,'0') else '0' end NIT, REPLACE(Nombre,'´','') AS Nombre,
case when TipoDocto = 'DA' then 'I' else 'L' end TipoCompra, '' S1,
case when TipoDoctoMaestro <> 'E' then '0'
else CASE WHEN (substring(NIT2, 0, charindex(' ',NIT2))) = '' THEN '0'
else substring(NIT2, 0, charindex(' ',NIT2)) end
end NoRegistro,
case when TipoDoctoMaestro <> 'E' then '0' else substring(NIT2, charindex(' ',NIT2) + 1, len(NIT2)) end NoCedula,
'' S2, '' S3,
isnull(sum(CA),0.00) CA, isnull(sum(SA),0.00) SA, isnull(sum(CNA),0.00) CNA, isnull(sum(SNA),0.00) SNA, 0.00 C1, 0.00 C4,
isnull(sum(Impuesto),0.00) Impuesto
from (select FechaDocto, case when (TipoDocto = 'FC' and TipoDoctoMaestro = 'E') then 'FE'
when TipoDocto = 'PI' then 'DA' else TipoDocto end TipoDocto,
TipoDoctoMaestro, Serie, NoDocto,
CASE WHEN LEFT(CardCode,1) = 'P' THEN '0'
WHEN LEFT(CardCode,1) = 'C' THEN '0'
ELSE replace(NIT,'-','') END NIT, NIT NIT2, Nombre, Referencia,
case when TipoDoctoDetalle <> 'S' then case when TipoImpuesto = '0' then case when EsIVACreditoFiscal = 'Y' then (ImpuestoLocal/0.12) end else NetoLocal end end CA,
case when TipoDoctoDetalle = 'S' then case when TipoImpuesto = '0' then case when EsIVACreditoFiscal = 'Y' then (ImpuestoLocal/0.12) end else NetoLocal end end SA,
case when (TipoImpuesto in ('0') and TipoDoctoDetalle <> 'S') then NetoLocal end CNA,
case when (TipoImpuesto in ('0') and TipoDoctoDetalle = 'S') then NetoLocal end SNA, ImpuestoLocal Impuesto
from SBOVCompras
where FechaConta between @INICIO and @FIN
and TipoDoctoDetalle not in ('N','NB')) DT
group by TipoDocto, Serie, NoDocto, FechaDocto, NIT, NIT2, Nombre, TipoDoctoMaestro) X
order by FechaDocto, TipoDocto, Serie, NoDocto
Lo que hago aqui, es halar datos de una vista, los codifico para que no me muestre datos nulos, porque en la parte superior, convierto a una linea, toda la informacion, separando los cada dato por "|"
Muy agradecido por cualquier ayuda!
El formato de fecha que devuelve la primera query no es igual al que entrega SAP.
Te sugiero insertes la query al procedimento almacenado y uses una tabla temporal:
Ej:
Select docdate into #libro
from oinv
where docdate >=@inicio and docdate <=@fin
Select docdate
from #libro
group by docdate
Atte,
Manuel Lazcano
User | Count |
---|---|
108 | |
12 | |
11 | |
6 | |
5 | |
4 | |
3 | |
3 | |
3 | |
3 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.