Ok, I solved by myself by using the strawberry's hint about GROUPWISE-MAXIMUM:
SELECT C.FULLNAME,C.COMPANY_ID,I.INVOICE_DATE
FROM COMPANY C INNER JOIN
(
SELECT I.COMPANY_ID,MAX(I.INVOICE_DATE) AS INVOICE_DATE
FROM #dsn2_alias#.INVOICE I GROUP BY I.COMPANY_ID
)
I ON I.COMPANY_ID = C.COMPANY_ID
WHERE I.INVOICE_DATE <= #attributes.date#
AND C.COMPANY_ID NOT IN
(
SELECT C.COMPANY_ID
FROM COMPANY C JOIN #dsn2_alias#.INVOICE I ON I.COMPANY_ID = C.COMPANY_ID
WHERE I.INVOICE_ID IS NOT NULL
AND I.INVOICE_DATE >= #attributes.date#
)
GROUP BY C.COMPANY_ID,C.FULLNAME,I.INVOICE_DATE ORDER BY I.INVOICE_DATE
Now it is ordered by time and doesn't repeat companies :)