So you have at most a 7-digit number (since 10,000,000 isn't a possibility): X-X-X-X-X-X-X, and the 12 can be in 6 different positions, so you have 1-2-X-X-X-X-X, X-1-2-X....,X-X-X-X-X-1-2. That is a total of $6*10^5 = 600,000$ different numbers. Now the hard part like I said above is finding the overlaps.
Suppose 12 were to appear twice, that means that we have 3 open spaces otherwise. How many ways can we reorder the two 12's and the extra 3 spots? That would be ${5\choose2} = 10$. Since the open spots can be $10^3$ different numbers, we end up with $10*10^3 =10,000$ overlaps.
Suppose 12 were to appear three times, that means we have 1 open space otherwise. How many ways can we reorder the three 12's and the extra spot? ${4\choose1} = 4$. Since the open spots can be 10 different numbers, we end up with $4*10 = 40$ overlaps.
However, if 12 were to appear three times, that means 12 also appears 2 times, and so instead of have $10,000$ overlaps (from the first overlap case), we actually have $10,000 - 40 = 9960$ total overlaps.
With $10,000,000$ different numbers, we end up with (total numbers - total overlaps) = $10,000,000 - (600,000-9960) = 9,409,960$ which I verified with Java.
The number of integers between $3$ and $4$ inclusive divisible by $3$ is not $\lfloor\frac{(4-3+1)}{3}\rfloor=\lfloor\frac{2}{3}\rfloor=0$ but is instead $\lfloor \frac{4}{3}\rfloor - \lfloor\frac{2}{3}\rfloor = 1$.
In the same way, you should not be using $\lfloor \frac{90000}{7}\rfloor$ but instead you should be using $\lfloor\frac{99999}{7}\rfloor - \lfloor\frac{9999}{7}\rfloor$
That is to say, the number of numbers $n$ in the range $a\leq n\leq b$ which is divisible by $7$ are those numbers in the range $1\leq n\leq b$ divisible by seven which are not numbers in the range $1\leq n\leq a-1$ which are divisible by $7$.
Best Answer
No: The number of numbers divisible by $12$ or $20$ is equal to the number that are divisible by $12$, plus the number that are divisible by $20$, minus the number that are divisible by both (i.e., divisible by their lowest common multiple, which is $60$). Otherwise, the last group is counted twice, when you only want to count them once. (I see that you realize this, but it's useful for future readers.)
That is $\lfloor 10000/12 \rfloor + \lfloor 10000/20 \rfloor - \lfloor 10000/60 \rfloor = 833+500-166 = 1167$.