SQL渣渣回求算法.一个查询排行

SQL渣渣来求算法.一个查询排行.
有t1和t2两表.表结构都一样.字段userid和val都是int型.
每个userid在两表中都有多条记录或者无记录.
现在要做个排行.
userid在t1中的val的总和乘以0.5加上userid在t2中的val的总和乘以0.4..
倒序排列.
大概意思是SUM(t1.val)*0.5 + SUM(t2.val)*0.4 group by userid 
SQL渣渣回求算法.一个查询排行
SQL太渣.可有理解我意思的神吗...
------解决思路----------------------
    SELECT ISNULL(a1.userid,a2.userid) userid,
           ISNULL(a1.val,0.0)*0.5+ISNULL(a2.val,0.0)*0.4 val
      FROM (SELECT userid, SUM(val*1.0) val FROM t1 GROUP BY userid) a1
 FULL JOIN (SELECT userid, SUM(val*1.0) val FROM t2 GROUP BY userid) a2
        ON a1.userid = a2.userid

------解决思路----------------------
楼上大神是不是忘记写排序部分了。。。

SELECT ISNULL(a1.val,0.0)*0.5+ISNULL(a2.val,0.0)*0.4 val, 
        ISNULL(a1.userid, a2.userid) userid          
  FROM 
    (SELECT userid, SUM(val*1.0) val FROM t1 GROUP BY userid) a1
  FULL JOIN 
    (SELECT userid, SUM(val*1.0) val FROM t2 GROUP BY userid) a2
  ON a1.userid = a2.userid
order by 1 desc