Typically, it is more common to put the fields you are joining on in the JOIN clause instead of a WHERE clause, i.e.
Code:
SELECT TRX.EXCHID, TRX.CELL, TRX.BLSTATE, TX.[BAND]
FROM TRX
INNER JOIN TX
ON TRX.EXCHID=TX.EXCHID
AND TRX.CELL=TX.CELL;
I am unable to download your example (corporate policy), but it sounds like you may have a many-to-many relationship going on (or possibly there are other fields that would show that these records aren't actually duplicates, but they are not being returned in your query.
You may be able to get rid of that if there are other fields you can join on. If not, you can always weed out the duplicate by adding the word DISTINCT after SELECT, i.e.
Code:
SELECT DISTINCT TRX.EXCHID, TRX.CELL, TRX.BLSTATE, TX.[BAND]
FROM TRX
INNER JOIN TX
ON TRX.EXCHID=TX.EXCHID
AND TRX.CELL=TX.CELL;