You should use proper join syntax. In particular, for this, you should use full outer join because it is possible that a document has no records in one or the other table.
Second, because you don't want to count duplicates, you need to count something. The following assumes that there is an id column (of some sort) in each table:
Select coalesce(s.DocumentNumber, s2.DocumentNumber) as DocumentNumber,
Count(distinct s.id), Count(distinct s2.id)
From Sheet s full outer join
Sheet2 s2
on s.DocumentNumber = s2.DocumentNumber
group by coalesce(s.DocumentNumber, s2.DocumentNumber);
If you don't have an id column, or if your database does not support full outer join, the following will also work:
select DocumentNumber, max(cnt_s) as cnt_s, max(cnt_s2) as cnt_s2
from ((select DocumentNumber, count(*) as cnt_s, 0 as cnt_s2
from Sheet s
group by DocumentNumber
) union all
(select DocumentNumber, 0, count(*) as cnt_s2
from Sheet2 s2
group by DocumentNumber
)
) t
group by DocumentNumber;
EDIT:
The union all approach is actually better for the price:
select DocumentNumber, max(cnt_s) as cnt_s, max(cnt_s2) as cnt_s2,
max(price_s) - max(price_s2)
from ((select DocumentNumber, count(*) as cnt_s, 0 as cnt_s2,
sum(price) as price_s, 0 as price_s2
from Sheet s
group by DocumentNumber
) union all
(select DocumentNumber, 0, count(*) as cnt_s2,
0, sum(price) as price_s2
from Sheet2 s2
group by DocumentNumber
)
) t
group by DocumentNumber;
Note: This version treats a missing price as 0. You might want to replace the 0 with NULL for that situation.