表一表二如图~
现在想写一条sql语句来通过某一人的工作证号,如张三的123,来查出他所有的称号代码也就是4.5.6;然后根据表二的称号代码来查出代码对应的“研究生支持人数”和“研究生支持年限”,二者相乘得出一个数,然后将这一个人所有这样两两相乘得出来的数累加起来,得出一个最后结果; 比如我查询张三,他的最后结果就是:1*1+2*3+1*1=8;我查李四的最后结果就是:1*1+2*3+1*1+1*1=9; 大概就是这样,求问sql语句怎么写~
select sum(年限*人数) from table2
where 称号代码 in
(
select 称号代码 from table1 where 姓名='李四'
);
select t.姓名,t.称号,m.年,m.ren ,(m.年*m.ren) as score from 表一 t,表二 m where t.姓名 = 张三 and t.称号 = m.称号 这是得到对应的分数,最后的分数相加你可以自己写
先left join,然后在sum求和即可
select t1.name,sum(t2.year*t2.peoples) from usertable t1 inner join chtable t2 on t1.ch_id=t2.ch_id where t1.name='李四' group by t1.name