Everything looks ok to me. What is your result? Also try it in sequential order to see if the data is really getting joined or not? You might be having a leading trailing spaces.
Because your just ICONV'ing the date. This will give you internal date, which is what you got. Now you need to OCONV it with conversion code "DJ" I think, double check it, to get the Julian Date.
Bad design. Load in different jobs. You are loading 15 tables with data size ~ 30 Million. Restartability will be a problem. If a record fails in any one of the tables and the job aborts, its going to affect the other loads as well.
Your understanding of my implication is correct. Whatever id you are using, should be in dstage group, which is default. Or whatever group you have specified for your DataStage users.