Buenos días foro
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