Cordial saludo, tengo el siguiente código:
/* select from [dbo].[OPKL] T0 */
SELECT
"F. Despacho",
"Nº Pedido",
"F. Documento",
"F. Vence",
"Diferencia",
"Ciudad",
"Nombre SN" AS "Cliente",
SUM("Kilos Solicitados") AS "Kilogramos Solicitados",
SUM("Kilos Despachados") AS "Kilogramos Despachados",
SUM("Kilos Pendientes") AS "Kilogramos Pendientes",
((SUM("Kilos Despachados")*100 ) / SUM("Kilos Solicitados") ) AS "% Cumplimiento"
FROM
(
SELECT DISTINCT
CAST(T10."PickDate" AS DATE) AS "F. Despacho", ---- ok
T0."DocNum" AS "Nº Pedido", ---- ok
-----CASE WHEN T0."NumAtCard" IS NULL THEN T8."NumAtCard" ELSE T0."NumAtCard" END AS "O.C. Cliente",
-----T1."PickIdNo" AS "Nº Picking",
CAST (T0."DocDate" AS DATE) AS "F. Documento", ---- ok
CAST (T0."DocDueDate" AS DATE) AS "F. Vence", ---- ok
DAYS_BETWEEN (TO_DATE (CAST(T10."PickDate" AS DATE), 'YYYY-MM-DD'),
TO_DATE(CAST(T0."DocDueDate" AS DATE), 'YYYY-MM-DD')) AS "Diferencia", ---- ok
T2."CityS" AS "Ciudad", ---- ok
-----T1."WhsCode" AS "Bodega",
-----T0."CardCode" AS "Cod. SN",
T0."CardName" AS "Nombre SN", ----- ok
-----T1."ItemCode" AS "Producto",
-----T1."Dscription" AS "Descripcion",
(T1."Quantity" * T1."NumPerMsr" * T5."IWeight1") AS "Kilos Solicitados", ---- ok
CASE WHEN T11."DelivrdQty" IS NULL THEN
(T1."DelivrdQty" * T1."NumPerMsr" * T5."IWeight1")
ELSE ((T1."DelivrdQty" * T1."NumPerMsr" * T5."IWeight1")
+ (T11."DelivrdQty" * T1."NumPerMsr" * T5."IWeight1"))
END AS "Kilos Despachados", ---- ok
((T1."Quantity" * T1."NumPerMsr" * T5."IWeight1") -
(CASE WHEN T11."DelivrdQty" IS NULL THEN
(T1."DelivrdQty" * T1."NumPerMsr" * T5."IWeight1")
ELSE ((T1."DelivrdQty" * T1."NumPerMsr" * T5."IWeight1")
+ (T11."DelivrdQty" * T1."NumPerMsr" * T5."IWeight1"))
END)) AS "Kilos Pendientes", ----- ok
ROUND((((T1."DelivrdQty" * T1."NumPerMsr" * T5."IWeight1")
/(T1."Quantity" * T1."NumPerMsr" * T5."IWeight1"))*100),0)||'%' AS "Cumplimiento" ---- ok
FROM ORDR T0
INNER JOIN RDR1 T1 ON T0."DocEntry" = T1."DocEntry"
INNER JOIN RDR12 T2 ON T0."DocEntry" = T2."DocEntry"
INNER JOIN OSLP T3 ON T0."SlpCode" = T3."SlpCode"
INNER JOIN OCRD T4 ON T0."CardCode" = T4."CardCode"
INNER JOIN OITM T5 ON T1."ItemCode" = T5."ItemCode"
INNER JOIN OITW T6 ON T1."ItemCode" = T6."ItemCode" AND T1."WhsCode" = T6."WhsCode"
INNER JOIN NNM1 T7 ON T0."Series" = T7."Series" AND T0."ObjType" = T7."ObjectCode"
LEFT JOIN OQUT T8 ON T1."BaseType" = T8."ObjType" AND T1."BaseEntry" = T8."DocEntry"
LEFT JOIN QUT1 T9 ON T8."DocEntry" = T9."DocEntry" AND T0."ObjType" = T9."TargetType"
AND T0."DocEntry" = T9."TrgetEntry"
LEFT JOIN OPKL T10 ON T1."PickIdNo" = T10."AbsEntry"
LEFT JOIN(SELECT T1."BaseRef",
T1."BaseType",
T1."BaseEntry",
T1."BaseLine",
T1."ItemCode",
T1."DelivrdQty"
FROM OINV T0
INNER JOIN INV1 T1 ON T0."DocEntry" = T1."DocEntry"
WHERE T0."CANCELED" = 'N'
)T11 ON T0."Ref1" = T11."BaseRef"
AND T0."ObjType" = T11."BaseType"
AND T0."DocEntry" = T11."BaseEntry"
AND T1."LineNum" = T11."BaseLine"
AND T1."ItemCode" = T11."ItemCode"
WHERE T10."PickDate" >= [%0]
AND T10."PickDate" <= [%1]
AND T1."WhsCode" = '06'
AND T1."ItemCode" LIKE '11%'
AND T0."CANCELED" = 'N'
AND T1."TargetType" != -1
GROUP BY T0."DocNum", T0."CardCode", T0."CardName", T0."DocDate", T0."DocDueDate",
T1."ItemCode", T1."Dscription", T1."Quantity", T1."UomCode", T1."InvQty", T1."Price",
T2."CityS", T3."SlpName", T5."IWeight1", T1."WhsCode", T6."OnHand", T1."NumPerMsr",
T2."StreetS", T8."NumAtCard", T7."SeriesName", T5."NumInSale", T5."FrgnName", T1."DelivrdQty",
T0."NumAtCard", T1."PickIdNo", T10."PickDate", T11."DelivrdQty"
----ORDER BY T0."DocNum"
)
GROUP BY
"F. Despacho",
"Nº Pedido",
"F. Documento",
"F. Vence",
"Diferencia",
"Ciudad",
"Nombre SN"
ORDER BY "F. Despacho"
Dentro de los datos estoy solicitando un rango de fecha y tambien quiero solicitar el numero del almacen, actualmente funciona dejando el almacen por defecto como se ve a continuación:
AND T1."WhsCode" = '06'
Quiero que este dato de almacen sea ingresado, sin embargo cuando solicito el dato como se ve en el codigo a continuación, la consulta deja de funcionar
AND T1."WhsCode" = [%2]
Como podria escribir esto para que sea posible solicitar tambien el dato del almacén?