estoy realizando una consulta para sacar mis inventarios y movimientos por hora y por fecha.
ya tengo la consulta la cual si me muestra los movimientos. pero por ejemplo si quiero saber los movimientos de las 22:00 horas asta las 7:30 horas me manda cantidades en 0 y si las hago de las 7:30 a las 22:00 horas si me las da.
es decir cuando selecciono un rango de un solo día si me muestra los daos pero si selecciono un horario que comienza en un día y termina en el siguiente no me muestra nada.
esta es mi consulta.
Código SQL:
Ver original
/* Select * From [dbo].[OWTR] T0 */ DECLARE @FecIni DateTime DECLARE @FecFin DateTime DECLARE @HorIni INT DECLARE @HorFin INT /* Where */ SELECT @FecIni /* T0.[DocDate] */= '[%0]' /* And */ SELECT @FecFin /* T0.[DocDate] */= '[%1]' /* And */ SELECT @HorIni /* T0.[DocTime] */= '[%2]' /* And */ SELECT @HorFin /* T0.[DocTime] */= '[%3]' SELECT DISTINCT T.ItemCode, T.ItemName, A.OnHand + IsNull((SELECT SUM(B.Quantity) FROM [dbo].RPD1 B INNER JOIN [dbo].ORPD A2 ON B.DocEntry = A2.DocEntry WHERE B.ItemCode=T.ItemCode AND A2.DocDate BETWEEN @FecIni AND @FecFin AND A2.DocTime BETWEEN @HorIni AND @HorFin AND A2.Canceled='N'),0) + ISNULL((SELECT SUM(Y.Quantity) FROM [dbo].OWTR X INNER JOIN [dbo].WTR1 Y ON Y.DocEntry=X.DocEntry WHERE Y.ItemCode=T.ItemCode AND X.DocDate BETWEEN @FecIni AND @FecFin AND DocTime BETWEEN @HorIni AND @HorFin AND Y.FromWhsCod = 'MP' AND Y.WhsCode = 'WIP'),0)AS 'stock historial', IsNull((SELECT SUM(B.Quantity) FROM [dbo].PDN1 B INNER JOIN [dbo].OPDN A1 ON B.DocEntry = A1.DocEntry WHERE B.ItemCode=T.ItemCode AND A1.DocDate BETWEEN @FecIni AND @FecFin AND A1.DocTime BETWEEN @HorIni AND @HorFin AND A1.Canceled='N'),0) AS 'Entradas de Mescancia', IsNull((SELECT SUM(B.Quantity) FROM [dbo].RPD1 B INNER JOIN [dbo].ORPD A2 ON B.DocEntry = A2.DocEntry WHERE B.ItemCode=T.ItemCode AND A2.DocDate BETWEEN @FecIni AND @FecFin AND A2.DocTime BETWEEN @HorIni AND @HorFin AND A2.Canceled='N'),0) AS'Devoluciones', ISNULL((SELECT SUM(Y.Quantity) FROM [dbo].OWTR X INNER JOIN [dbo].WTR1 Y ON Y.DocEntry=X.DocEntry WHERE Y.ItemCode=T.ItemCode AND X.DocDate BETWEEN @FecIni AND @FecFin AND DocTime BETWEEN @HorIni AND @HorFin AND Y.FromWhsCod = 'MP' AND Y.WhsCode = 'WIP'),0)AS 'Cantidad Entregada', A.OnHand AS 'Inventario' /*ISNULL((SELECT SUM(Y.Quantity) FROM [dbo].OIGE X INNER JOIN [dbo].IGE1 Y ON Y.DocEntry=X.DocEntry WHERE Y.ItemCode=T.ItemCode AND X.DocDate >=@FecIni AND X.DocDate<= @FecFin and Y.WhsCode = 'WIP' AND Y.AcctCode = '1200.2.1' AND X.Comments LIKE '%Nº-OT%'),0) as'Cantidad Consumida'*/ FROM OITM T INNER JOIN OITW A ON T.ItemCode = A.ItemCode WHERE T.SellItem = 'N' AND T.PrchSeItem = 'Y' AND A.WhsCode = 'MP' GROUP BY T.ItemCode, T.ItemName,A.OnHand ORDER BY T.ItemCode