Declare @Date1 Datetime Declare @Date2 Datetime Set @Date1 = (select min(S0.DocDate) from OINM S0 Where S0.Docdate >= '[%0]') Set @Date2 = (Select max(S1.Docdate) from OINM S1 Where S1.DocDate <= '[%1]') SELECT T0.[DocNum] --1 ,CASE T0.[DocStatus] WHEN 'O' THEN 'Open' WHEN 'C' THEN 'Closed' ELSE '' END 'DocStatus' --2 ,T0.[DocDate] --3 ,T0.[DocDueDate] --4 ,T0.[CardCode] --5 ,T0.[CardName] --6 ,T1.[DocNum] 'Delivery' --7 ,T2.[DocNum] 'Invoice' --8 FROM ORDR T0 LEFT OUTER JOIN ( SELECT D0.[DocEntry] ,D1.[DocNum] ,MAX(D0.[BaseEntry]) 'BaseEntry' FROM DLN1 D0 INNER JOIN ODLN D1 ON D0.[DocEntry] = D1.[DocEntry] WHERE D0.[BaseType] = 17 GROUP BY D0.[DocEntry],D1.[DocNum] ) T1 ON T0.[DocEntry] = T1.[BaseEntry] LEFT OUTER JOIN ( SELECT D0.[DocEntry] ,D1.[DocNum] ,MAX(D0.[BaseEntry]) 'BaseEntry' FROM INV1 D0 INNER JOIN OINV D1 ON D0.[DocEntry] = D1.[DocEntry] WHERE D0.[BaseType] = 15 GROUP BY D0.[DocEntry],D1.[DocNum] ) T2 ON T1.[DocEntry] = T2.[BaseEntry] WHERE T0.[CANCELED] = 'N' AND T0.[DocType] = 'I' AND T0.[DocDate] BETWEEN @Date1 AND @Date2 ORDER BY T0.[DocNum] DESC