Well its hard to understand your query but we can help you debug your sql and identify which field is creating problem. You can debug your sql like this and see which field has invalid data one by one
Select
cast(b.discharge_total_moves as varchar(30))
From dbo.TDR_VSL_MASTER a inner join tdr_cal b
on a.VIANO = b.viano
inner join DWH_REPORTING.dbo.DAILY_VSL_DETAILS c
on b.viano= c.VIANO