Dias de inventario de un articulo

sql
Etiquetas: #<Tag:0x00007fb8db385d88>

#1

Hola,
Necesito saber cómo sacar los días de inventario de un producto.

Esto es obtener cuantos días estuvo en almacén un producto en un lapso de tiempo determinado.
para poderlos clasificar por meses, si alguien me podría ayudar con una idea para generar el query


#2

Hola compañero.

Tu pregunta me hace imaginar uno y mil escenarios sin embargo veo en tu presentación que manejas HANA lo cual te recomiendo mencionar en cada pregunta que realices ya que la mayoría aun trabajamos sobre SQL Server.

Para no emitir mi comentario de manera poco fructífera te comento que si no manejas números de serie (o números de lote en su defecto) sería difícil saber cuando entro y cuando salió un mismo artículo.

Hace algunos días se toco un tema similar, te recomiendo analizarlo:
Crear query que me traiga siempre la ultima fecha

Saludos, espero te sea de utilidad mi comentario.

No olvides que una manera de agradecer las aportaciones es por medio “me gusta” y aun más importante es marcar la respuesta que ha dado solución a tu inconveniente.

Saludos desde México.


#3

gracias por la recomendación @Gera_Mendez , el escenario seria el siguiente:
En los diferentes almacenes manejamos tanto productos con serie como sin ella, no manejamos nada por lotes, de lo que he estado pensando es que podría relacionar los artículos con la fecha del documento entrada de mercancías, pero el problema ahí es que hacer cuando se realiza ajustes de inventario por faltantes o sobrantes sobre esa entraa de mercancías, ahí las cantidades y fechas cambiarían para los productos, y la verdad no quiero meterme con lo referente a la rotación de inventarios.


#4

Que tal Reinaldo.

SAP tiene algunas transacciones estandar para el analisis de stocks e inventarios.

Desde la MC.1 a MC. 9 dentro de éstas están algunas que te pueden servir para validar la rotacion a nivel de centro y almacen.

saludos¡¡¡


#5

Hola Reinaldo.

Creo que seguimos con el mismo escenario o bien, no estoy comprendiendo tu requerimiento. ¿Cómo podrías saber en qué documento salieron los artículos que se registraron en “x” entrada? ¿Llevas algún control por medio de campos de usuario?

Por ejemplo:
- Tienes un stock de 10 unidades.
- Registras una entrada de mercancías por 5 unidades
- Pasan un par de días y registras la entrada de 5 unidades más
- Registras una venta por 10 unidades
- ¿cómo sabes la fecha de entrada de las 10 unidades que salieron?
- ¿cómo te aseguras que salieron las 10 unidades que ya tenías en stock o las 10 unidades que entraron después?

¿Me explico? La única manera de saber esto es por medio de un manejo completo de número de series.

Te dejo una liga externa para ver si te puedes dar una idea:
h_tps://archive.sap.com/discussions/thread/3583918


#6

Hola compañero @RodolfoRC.

La cuestión es que el compañero trabaja con SAP Business One o al menos eso he pensando todo este tiempo tomando como base su presentación y el hecho de crear su pregunta dentro del espacio destinado para SAP Business One.

Saludos.


#7

:relaxed: tienes razon Gerardo.

saludos¡¡¡


#8

quero agradecer a todos por la ayuda, pero una vez revisado esto llegue a la conclusión que si la bodega no se maneja mínimo por lotes, la consulta no generara una información real del stock ni de las edades del inventario.


#9

Gracias por retroalimentar, sería bueno que dieras por cerrado el tema.

Saludos.


#10

#11

#12

Como están he abierto este tema como respuesta a un tema que abrí previamente hace algunos meses

Lo he abierto para poder compartir la solución encontrada al problema propuesto en mi post anterior, el Query que voy a compartir me retorna la edad aparente que tiene un ítem en bodega:

Se explica los criterios bajo los cuales funciona la consulta:

  • Se consideran para la consulta, aquellos ítems que tiene stock en SAP.
  • Los documentos considerados que afectan entradas de mercaderías, son: Saldos Iniciales, Entrada de Compras, Devoluciones de Compras, Facturas de Proveedores y Notas de Crédito de Proveedores.
  • Los documentos considerados que afectan salidas de mercaderías, son: Entregas, Devoluciones de Ventas, Facturas de Deudores y Notas de Crédito de Deudores.
  • Se menciona que los documentos considerados en el punto anterior (documentos que generan salidas de mercadería), serán restados de las compras más antiguas existentes.

Este Query es puramente informativo ya que como mencione en el post anterior en nuestra bodega no manejamos ni series ni lotes, y porque los artículos que vendemos no tienen fecha de caducidad y porque el desgaste es mínimo con el tiempo, por lo tanto no es de nuestro interés saber que articulo en especifico tiene una edad sino mas bien un estimado sin importar que articulo sea.


Select "ItemCode"
, "ItemName"
, "ItmsGrpNam"
, "AvgPrice"
, Stock

, case when ("P2"+"P3"+"P4"+"P5"+"P6"+"P7")+"Vtas">=0 then "P1" 
		when ("P2"+"P3"+"P4"+"P5"+"P6"+"P7")+"Vtas"<0 and ("P1"+"P2"+"P3"+"P4"+"P5"+"P6"+"P7")+"Vtas" >=0 then ("P1"+"P2"+"P3"+"P4"+"P5"+"P6"+"P7")+"Vtas" 
		when ("P2"+"P3"+"P4"+"P5"+"P6"+"P7")+"Vtas"<0 and ("P1"+"P2"+"P3"+"P4"+"P5"+"P6"+"P7")+"Vtas" <0 then 0
		when "P1"=0 then 0 end de0a30
, case when ("P3"+"P4"+"P5"+"P6"+"P7")+"Vtas">=0 then "P2" 
		when ("P3"+"P4"+"P5"+"P6"+"P7")+"Vtas"<0 and ("P2"+"P3"+"P4"+"P5"+"P6"+"P7")+"Vtas" >=0 then ("P2"+"P3"+"P4"+"P5"+"P6"+"P7")+"Vtas" 
		when ("P3"+"P4"+"P5"+"P6"+"P7")+"Vtas"<0 and ("P2"+"P3"+"P4"+"P5"+"P6"+"P7")+"Vtas" < 0 then 0
		when "P2"=0 then 0 end de31a60
, case when ("P4"+"P5"+"P6"+"P7")+"Vtas">=0 then "P3" 
		when ("P4"+"P5"+"P6"+"P7")+"Vtas"<0 and ("P3"+"P4"+"P5"+"P6"+"P7")+"Vtas" >= 0 then ("P3"+"P4"+"P5"+"P6"+"P7")+"Vtas" 
		when ("P4"+"P5"+"P6"+"P7")+"Vtas"<0 and ("P3"+"P4"+"P5"+"P6"+"P7")+"Vtas" < 0 then 0
		when "P3"=0 then 0 end de61a90
, case when ("P5"+"P6"+"P7")+"Vtas">=0 then "P4" 
		when ("P5"+"P6"+"P7")+"Vtas"<0 and ("P4"+"P5"+"P6"+"P7")+"Vtas" >=0 then ("P4"+"P5"+"P6"+"P7")+"Vtas" 
		when ("P5"+"P6"+"P7")+"Vtas"<0 and ("P4"+"P5"+"P6"+"P7")+"Vtas" <0 then 0
		when "P4"=0 then 0 end de91a120
, case when ("P6"+"P7")+"Vtas">=0 then "P5" 
	   when ("P6"+"P7")+"Vtas"<0 and ("P5"+"P6"+"P7")+"Vtas" >=0 then ("P5"+"P6"+"P7")+"Vtas" 
	   when ("P6"+"P7")+"Vtas"<0 and ("P5"+"P6"+"P7")+"Vtas" < 0 then 0
	   when "P5"=0 then 0 end de121a150
, case when "P7"+"Vtas">=0 then "P6" 
		when "P7"+"Vtas"<0 and ("P6"+"P7")+"Vtas" >= 0 then ("P6"+"P7")+"Vtas" 
		when "P7"+"Vtas"<0 and ("P6"+"P7")+"Vtas" < 0 then  0   
		when "P6" = 0 then 0 end de151a180
, (case when "P7"+"Vtas"<0 or "P7" = 0 then 0 else "P7"+"Vtas" end) May181
from (
	select 
	  T1."ItemCode"
	, T1."ItemName"
	, T2."ItmsGrpNam"
	, T1."AvgPrice"
	, Sum(T0."InboundInventoryQuantity" - T0."OutboundInventoryQuantity") Stock
	, Sum(case when T0."DocumentTypeCode" in ('18','20', '310000001') and T0."PostingDate" between ADD_DAYS(CURRENT_DATE,-30) and CURRENT_DATE  then (T0."InboundInventoryQuantity" - T0."OutboundInventoryQuantity") else 0 end ) P1
	, Sum(case when T0."DocumentTypeCode" in ('18','20', '310000001') and T0."PostingDate" between ADD_DAYS(CURRENT_DATE,-60) and ADD_DAYS(CURRENT_DATE,-31)  then (T0."InboundInventoryQuantity" - T0."OutboundInventoryQuantity") else 0 end) P2
	, sum(case when T0."DocumentTypeCode" in ('18','20', '310000001') and T0."PostingDate" between ADD_DAYS(CURRENT_DATE,-90) and ADD_DAYS(CURRENT_DATE,-61)  then (T0."InboundInventoryQuantity" - T0."OutboundInventoryQuantity") else 0 end) p3
	, sum(case when T0."DocumentTypeCode" in ('18','20', '310000001') and T0."PostingDate" between ADD_DAYS(CURRENT_DATE,-120) and ADD_DAYS(CURRENT_DATE,-91) then (T0."InboundInventoryQuantity" - T0."OutboundInventoryQuantity") else 0 end) P4
	, sum(case when T0."DocumentTypeCode" in ('18','20', '310000001') and T0."PostingDate" between ADD_DAYS(CURRENT_DATE,-150) and ADD_DAYS(CURRENT_DATE,-121) then (T0."InboundInventoryQuantity" - T0."OutboundInventoryQuantity") else 0 end) P5
	, sum(case when T0."DocumentTypeCode" in ('18','20', '310000001') and T0."PostingDate" between ADD_DAYS(CURRENT_DATE,-180) and ADD_DAYS(CURRENT_DATE,-151) then (T0."InboundInventoryQuantity" - T0."OutboundInventoryQuantity") else 0 end) P6
	, sum(case when T0."DocumentTypeCode" in ('18','20', '310000001') and T0."PostingDate" <= ADD_DAYS(CURRENT_DATE,-181) then (T0."InboundInventoryQuantity" - T0."OutboundInventoryQuantity")  else 0 end) P7
	, sum(case when T0."DocumentTypeCode" in ('13','14','15', '16', '19', '21')  then (T0."InboundInventoryQuantity" - T0."OutboundInventoryQuantity")  else 0 end) "Vtas"
	from "_SYS_BIC"."sap.NOMBRE_BASE_DATOS.stock/InventoryTransactionDocumentsFact" T0
	inner join "OITM" T1 on T0."LineItemCode" =  T1."ItemCode"
	inner join "OITB" T2 on T1."ItmsGrpCod" = T2."ItmsGrpCod"
	Where  --T0."LineItemCode" = 'MT-8200-60-KIT' '6210G-07L' AND 
 T0."PostingDate" <= CURRENT_DATE
	group by T1."ItemCode"
	, T1."ItemName"
	, T1."AvgPrice"
	, T2."ItmsGrpNam"
) TMP

WHERE "STOCK" > 0

este Query corre sin ningún problema sobre HANA y utiliza SQLScript.


#13

Este tema se cerró automáticamente 7 días después del último post. No se permiten nuevas respuestas.