The case expressions are the same in the 1,3,5 lines and the 2,4,6 lines. Is this intended? If the desire is to just have a shorthand for the repetition, then the name specified in the AS can just be referenced.
Case when (Table1.col2=Table2.col2) then Table1.Qty else Null end as AndJoinQty1
Case when (Table1.col3=Table2.col2) then Table1.Qty else Null end as OrJoinQty1
AndJoinQty1 as AndJoinQty2
OrJoinQty1 as OrJoinQty2
AndJoinQty1 as AndJoinQty3
OrJoinQty1 as OrJoinQty3
If the concern is that the conditions are the same as the conditions in the join, there is no impact to doing that if that is the logic needed to get the desired result.