Did you look at the output? Do the actual variables make sense?
MERGE in SAS is a side-by-side operation.
From the number of observations you say you expect then it appears you want to STACK the data which would be a SET not merge.
What you code is doing is aligning records based on the By variables. So if LI_SALE_NUMBER has the same value in two sets the record is combined into one.
Example of the difference between the MERGE and SET;
data two;
input x z;
datalines;
1 111
3 333
4 444
;
data example1;
merge one two;
by x;
run;
data example2;
set one two;
by x;
run;
The result:
Example 1
x y z
1 11 111
2 22 .
3 33 333
4 . 444
Example 2
x y z
1 11 .
1 . 111
2 22 .
3 33 .
3 . 333
4 . 444