D’aquesta manera es poden introduir els paràmetres de les preguntes d’una forma més senzilla de cara al manteniment de les consultes:

/* SELECT  DocDate FROM OINV FA  */ 

declare @desde as date
declare @finsa as date

set @desde = /* FA.DocDate */  '[%0]'
set @finsa = /* FA.DocDate */  '[%1]'

select 'FC/MI' 'Tipus'
,O.DocDate 'Data Factura'
,SE.SeriesName+'/'+CONVERT(nvarchar,O.DocNum) 'Numero Factura'
,L.ItemCode 'Codi Article'
,IT.ItemName 'Descripcio Article'
,F.Code 'Codi Familia'
,F.Name 'Familia'
,SF.Code 'Codi SubFamilia'
,SF.Name 'SubFamilia'
,MONTH(O.DocDate) 'Mes'
,YEAR(O.DocDate) 'Any'
,DATEPART(ISO_WEEK,O.DocDate) 'Setmana'
,L.Quantity 'Quantitat'
,L.unitMsr 'Unitat de Compra'
,L.LineTotal 'Import'
from OPCH O
join PCH1 L on L.DocEntry=O.DocEntry
join NNM1 SE on SE.Series=O.Series
join OITM IT on IT.ItemCode=L.ItemCode
left join [@INT_FAMILY] F on F.Code=IT.U_family
left join [@INT_SUBFAMILY] SF on SF.Code=IT.U_Subfamily
where O.DocDate>=@desde and O.DocDate<=@finsa

Exemple versió SAP Business One HANA

SQL
/* SELECT  DocDate FROM OINV FA  */

declare @desde as date;
declare @finsa as date;

set @desde = /* FA.DocDate */  '20250101';
set @finsa = /* FA.DocDate */  '20250101';

SELECT 
F."DocEntry"
,F."DocNum",S."SeriesName" "Serie"
,F."CardCode" "CodigoProveedor"
,F."CardName" "NombreProveedor"
,IC."DebPayAcct" "Cuenta"
,F."DocDate" "FechaContabilizado"
,F."DocDueDate" "FechaVencimiento"
,F."TaxDate" "FechaDocumento"
,P."DocDate" "FechaPago"
,A."RefDate" "FechaAsiento"
,AB."DocDate" "FechaAbono"
,IFNULL(IFNULL(P."DocDate",A."RefDate"),AB."DocDate") "FechaDePago"
,F."DocTotal"-F."VatSum" "BaseImponible"
,F."DocTotal" "TotalFactura"
,F."DocStatus" "EstadoFactura"
,A."TransType"
,A."CreatedBy"
,A."Ref1"
,F."PaidToDate" "PagadoHastaFecha"
,F."Installmnt" "Plazos"
,F."GroupNum",FP."PymntGroup" "MetodoPago"
,F."PeyMethod",MP."Descript" "ViaPago"
,RI."ReconNum" "Reconciliacion"
,RIL."LineSeq" "LineaReconciliacion"
,RI."ReconType"
,RI."InitObjTyp"
,RI."InitObjAbs"
,RIL."ReconSum" "ImporteReconciliado"
,RIL."SrcObjTyp" "ObjetoOrigenReconciliacion"
,RIL."SrcObjAbs" "DocEntryOrigenReconciliacion"
,RIL."TransId", RIL."TransRowId" -- Assentament
,LP."SumApplied" "LineaPagoImporte"
,LP."InvType" "LineaPagoObjetoBase"
,LP."baseAbs" "LineaPagoDocEntryBase"
,P."DocEntry" "DocEntryPago"
,P."DocNum" "DocNumPago"
FROM OPCH F
-- Taules auxiliars
LEFT JOIN OCRD IC on IC."CardCode"=F."CardCode"
LEFT JOIN OCTG FP on FP."GroupNum"=F."GroupNum"
LEFT JOIN OPYM MP on MP."PayMethCod"=F."PeyMethod"
LEFT JOIN NNM1 S on S."Series"=F."Series"
-- Reconciliacions internes
LEFT JOIN OITR RI on RI."ReconNum" in
(
SELECT IRIL."ReconNum"
FROM ITR1 IRIL
JOIN OITR IRI on IRI."ReconNum"=IRIL."ReconNum"
WHERE IRIL."SrcObjTyp"='18' and IRIL."SrcObjAbs"=F."DocEntry" and IRIL."ShortName"=F."CardCode" and IRI."Canceled"='N'
)
LEFT JOIN ITR1 RIL on RIL."ReconNum"=RI."ReconNum" and (RIL."SrcObjTyp" in ('46','30','19'))
-- Pagaments
LEFT JOIN OVPM P on P."DocEntry"=RIL."SrcObjAbs" and RIL."SrcObjTyp"='46' and P."DocDate"<=@finsa
LEFT JOIN VPM2 LP on LP."DocNum"=P."DocEntry"
-- Asentament
LEFT JOIN OJDT A on A."TransId"=RIL."SrcObjAbs" and RIL."SrcObjTyp"='30' 
-- Abonament
LEFT JOIN ORPC AB on AB."DocEntry"=RIL."SrcObjAbs" and RIL."SrcObjTyp"='19'
-- Condicions generals
WHERE F."TaxDate">=@desde and F."TaxDate"<=@finsa and F."CANCELED"='N' and (F."DocEntry"=LP."baseAbs" or LP."baseAbs" is Null)
ORDER BY "FechaDocumento", "DocEntry";