You indicated BillingRateB was blank, but in the picture it is BillingTypeB that is blank -- Rate (which is either BillingRateA or BillingRateB) is always populated. But there are blank values for Unit (which is either billingTypeA or billingTypeB) for eight rows.
The results you're showing don't seem to match the DDL.
You're showing values of "Header", Leaf", "Shelf", and empty string for Unit -- which according to your query is an alias for BillingType.billingTypeA or BillingType.billingTypeB.
In the query provided, you are joining BillingType to Client on those columns, which appear to be returning strings, but your DDL indicates those are integers. I don't see how both of those things could be true -- you couldn't return any rows w/ the strings shown if BillingType.billingTypeA & BillingType.billingTypeB are integers. And you would probably get no results if BillingType.billingTypeA & BillingType.billingTypeB are varchar; you might even get a data type exception on the join.