Consulta entre tres tablas

hola amigo me pueden ayudar con esto en SAP B1 estoy tratando de hacer una relación entre estas 3 tablas [pedido],[Entrada mercancías] y [Precio de entrega]

para sacar la siguiente información de cada tabla sin que se repita los numero de documentos

hasta el momento tengo esta relación pero me muestra valores duplicado solo al consultar un producto y de fecha 2018

SELECT DISTINCT T0."DocNum",
T0."DocDate", 
T0."DocDueDate" as "Fecha de entrega", 
T0."CardCode", 
T0."CardName",
T3."ItemCode",
T3."Quantity", 
T3."OpenCreQty" as "Cant Pendiente", 
T3."WhsCode", 
T0."U_PUE_EMBAR", 
T0."U_PUE_LLEGADA",
T2."DocNum" as "# Entrada",
T2."NumAtCard" as "# Importacion", 
T2."DocDate" as "Fecha Entrada", 
T2."DocCur", 
T2."DocRate",
T1."Quantity",
T1."OcrCode",
T11."AlcName",
T12."DocNum",
T7."PriceAtWH",
T10."CostSum" AS "Costo Importe"
FROM  OPOR T0
 inner JOIN PDN1 T1 ON T0."DocEntry"=T1."BaseEntry"
  LEFT JOIN OPDN T2 ON T2."DocEntry" = T1."DocEntry"
  LEFT JOIN POR1 T3 ON T3."DocEntry"=T1."DocEntry" AND  T3."ItemCode" = T1."ItemCode" 
  
  LEFT JOIN IPF1 T7 ON T7."ItemCode" = T1."ItemCode" AND T7."ItemCode" = T3."ItemCode"
  LEFT JOIN OIPF T12 ON T12."DocEntry" = T7."DocEntry"
  LEFT JOIN IPF2 T10 ON T10."DocEntry" = T7."DocEntry"
  LEFT JOIN OALC T11 ON T11."AlcCode" = T10."AlcCode"
  



WHERE   T1."ItemCode" = 'CU/EPR5012N4416P' and T0."Series" = 131 and T0."DocDate" >= '2018-01-01' and T11."AlcName" = 'Fletes'

Te sugiero:

  1. Tratar de usar directamente las tablas detalles, ahi esta en realidad la relacion entre documentos, y claro usar “Inner Join”, por que la relacion puede ser muchos a muchos, y por lo tanto puedes tener una linea de tu orden que fue a parar a 2 entregas distintas.
  2. La relacion entre detalle de documentos esta en los campos BaseEntry y DocEntry y entre BaseLine y LineNum. En el caso de IPF1 no tiene BaseLine, en vez tiene OrigLine.

Ejemplo:

FROM  OPOR T0
inner join POR1 T3 ON T3."DocEntry"=T0."DocEntry"
inner JOIN PDN1 T1 ON T3."DocEntry"=T1."BaseEntry" and T3.LineNum = T1.BaseLine
inner join IPF1 T7 ON T7."BaseEntry" = T1."DocEntry" and T7."OrigLine" = T1."LineNum"

Saludos,

4 Me gusta

Este tema se cerró automáticamente 91 días después de la última publicación. No se permiten nuevas respuestas.