cancel
Showing results for 
Search instead for 
Did you mean: 

Facturas no muestran lotes de los productos a vender

0 Kudos

Hola.

Estoy trabado con una query, donde necesito me muestre el resultado de las facturas que tienen un producto especifico y un lote especifico.

La que desarrollo me muestra más facturas (un total de 9) siendo que sólo 2 tienen esas condiciones entregadas.

La query es la siguiente:

SELECT

T0.[DocNum],

T0.[DocDate],

T0.[CardCode],

T1.[ItemCode],

T1.[Dscription],

T1.[Quantity],

T1.[unitMsr]

FROM OINV T0  INNER JOIN INV1 T1 ON T0.[DocEntry] = T1.[DocEntry] INNER JOIN OITM T2 ON T1.[ItemCode] = T2.[ItemCode] INNER JOIN OBTN T3 ON T2.[ItemCode] = T3.[ItemCode]

WHERE T1.[ItemCode] ='pt-2020' and  T3.[DistNumber] ='PT-20203336-1'

El resultado es el de la foto, cuando debiese mostrar sólo las facturas de la linea 1 y la linea 9 que cumplen esas condiciones.

Accepted Solutions (1)

Accepted Solutions (1)

douglas_marroquin
Participant
0 Kudos

Intenta con esto, en lo personal me funciona

SELECT

    T1.[DocEntry],T0.[DocNum],T0.[DocDate],T0.[CardCode],T0.[CardName],

    T1.[ItemCode],T1.[Dscription],T1.[Quantity],T1.[unitMsr],T2.BatchNum

FROM OINV T0  INNER JOIN INV1 T1 ON T0.[DocEntry] = T1.[DocEntry]

        INNER JOIN IBT1 T2  on T1.DocEntry =T2.BaseEntry and T1.ItemCode=T2.ItemCode and T1.LineNum=T2.BaseLinNum

WHERE T1.[ItemCode] ='PT0016' and  T2.[BatchNum] ='ABC'

0 Kudos

Gracias, le agrego los datos que se buscan, pero sólo muestra un documento (factura), siendo que son dos facturas que tienen ese producto con ese lote especifico.

En este caso ocurre al revés, muestra sólo un dato, siendo que a mi me muestra datos de más...

Como se muestra el resultado de mas arriba en la foto, hay dos facturas con esa condición "producto y lote" con la query que me facilitas muestra sólo la factura 7538966 pero no la 7538161 que también cumple las condiciones.

douglas_marroquin
Participant
0 Kudos

yo lo ejecuto el query y hago que se cumpla la condición, me funciona sin ningun problema

lo pegaste sin hacerle cambio, más que al valor de las condiciones?

0 Kudos

Efectivamente estas en lo correcto, el problema que ocurría que la consulta la estaba haciendo por el producto terminado y no por el componente en cuestión y por eso arrojaba esos resultados, cambie la consulta para realizar por la materia prima y funciona correcto.

Gracias.

douglas_marroquin
Participant
0 Kudos

Listo,

Excelente.-

Answers (2)

Answers (2)

Former Member
0 Kudos

Hola Daniel!!

Que te muestra la consulta si al select le agregas el "DistNumber"?

Saludos!

0 Kudos

En la imagen se muestra resultado de query, la factura que contiene el producto y la operación del lote, efectivamente el producto está en la factura, pero el lote no coincide.

Former Member
0 Kudos

Lo que pasa es que no te esta ligando a la factura el dato y si le pones el ObgType en el where?

0 Kudos

es lo mismo, sería decirle que busque en la factura, si le coloco el Nro. de la factura me arroja sólo lo de esa factura pero no es la idea.

Se pretende que si cumple la condición arroje el resultado.

Aún sigo buscando como generar dicho resultado, no he podido llegar al correcto.

douglas_marroquin
Participant
0 Kudos

Hola Daniel

Prueba con el campo BatchNum

0 Kudos

Gracias por tu tiempo pero esa columna no esta en las tablas que consulto.

douglas_marroquin
Participant
0 Kudos

Los puedes optener de la tabla IBT1

Left Join IBT1 LOT_DET on FAC_DET.DocEntry =LOT_DET.BaseEntry ejemplo de referencia
douglas_marroquin
Participant
0 Kudos

Pega tu qery acá por favor

0 Kudos

SELECT

T1.[DocEntry],

T0.[DocNum],

T0.[DocDate],

T0.[CardCode],

T0.[CardName],

T1.[ItemCode],

T1.[Dscription],

T1.[Quantity],

T1.[unitMsr],

T3.[DistNumber]

FROM OINV T0  INNER JOIN INV1 T1 ON T0.[DocEntry] = T1.[DocEntry] INNER JOIN OITM T2 ON T1.[ItemCode] = T2.[ItemCode] INNER JOIN OBTN T3 ON T2.[ItemCode] = T3.[ItemCode]

WHERE T1.[ItemCode] ='pt-2020' and  T3.[DistNumber] ='PT-20203336-1'

Gracias por tu tiempo-