Ayuda SAP

Mostrar una selec según el itemCode

sql
Etiquetas: #<Tag:0x00007fe47d0127f0>
#1

Buenas noches de nuevo.
La query que intento generar es: Si T1.“ItemCode” de (/ Precios itemCodes en factura /) se encuentra en la (/ Tabla precios especiales /) muestre el precio de (/ Tabla precios especiales /) si no es así muestre el precio de la select (/ Precios itemCodes en factura /).
_He utilizado la sentencia Case y no funciona, con IF lo he probado y nada.

/ *Precios itemCodes en factura* /
SELECT
DISTINCT T0.“CardCode”,
T1.“ItemCode”,
T0.“CardName”,
T1.“U_DOI_CALC_OT”,
T1.“PriceBefDi”,
**T1.“Price”,**
T1.“FreeTxt”,
FROM OPCH T0
INNER JOIN PCH1 T1 ON T0.“DocEntry” = T1.“DocEntry”
GROUP BY T0.“CardCode”,
T0.“CardName”,
T1.“U_DOI_CALC_OT”,
T1.“ItemCode”,
T1.“Dscription”,
T1.“BaseLine”,
T1.“PriceBefDi”,
T1.“Price”,
T1.“FreeTxt”
;


 /*Tabla precios especiales*/
SELECT
 T1."Code",
 T1."Name",
 T1."UpdateDate",
 T0."U_DOI_ItemCode",
 T0."U_DOI_ItemName",
 **T0."U_DOI_Precio"**

FROM “@DOI_PEP1” T0
INNER JOIN “@DOI_PEP” T1 ON T0.“Code” = T1.“Code”
ORDER BY T0.“U_DOI_ItemCode”
;

Gracias.

0 me gusta

#2

El case deberia funcionar, aunque no entiendo que mas guardas en tu cabecera, solo la fecha de actualizacion?:

Case 
WHEN (select count(*) from dbo.[@DOI_PEP1] where "U_DOI_ItemCode"=T1.“ItemCode”)>0 
             THEN (Select TOP 1 "U_DOI_Precio" from dbo.[@DOI_PEP1] where "U_DOI_ItemCode"=T1.“ItemCode” Order by "Code" Desc)
ELSE  T1.“Price”
END

Debería servirte de base para ajustarlo.

Saludos,

0 me gusta

#3

Exactamente que es lo que quieres hacer con el reporte Juan Antonio.

0 me gusta