2 feiyuwuhen1 feiyuwuhen1 于 2015.08.27 10:28 提问

sql两表联合计算求助~

图片说明图片说明
表一表二如图~
现在想写一条sql语句来通过某一人的工作证号,如张三的123,来查出他所有的称号代码也就是4.5.6;然后根据表二的称号代码来查出代码对应的“研究生支持人数”和“研究生支持年限”,二者相乘得出一个数,然后将这一个人所有这样两两相乘得出来的数累加起来,得出一个最后结果; 比如我查询张三,他的最后结果就是:1*1+2*3+1*1=8;我查李四的最后结果就是:1*1+2*3+1*1+1*1=9; 大概就是这样,求问sql语句怎么写~

10个回答

chenyang_yx
chenyang_yx   2015.08.27 10:48
已采纳

select sum(年限*人数) from table2
where 称号代码 in
(
select 称号代码 from table1 where 姓名='李四'
);

holleyangyangs
holleyangyangs 这样写不好,数据量大会有问题
一年多之前 回复
feiyuwuhen1
feiyuwuhen1 十分感谢~
大约 2 年之前 回复
dltsbydh
dltsbydh   2015.08.27 10:42

select t.姓名,t.称号,m.年,m.ren ,(m.年*m.ren) as score from 表一 t,表二 m where t.姓名 = 张三 and t.称号 = m.称号 这是得到对应的分数,最后的分数相加你可以自己写

feiyuwuhen1
feiyuwuhen1 非常感谢!!
大约 2 年之前 回复
yuke198907
yuke198907   2015.08.27 13:56

先left join,然后在sum求和即可

qq_21941909
qq_21941909   2015.09.30 13:43

select t.姓名,t.称号,m.年,m.ren ,(m.年*m.ren) as score from 表一 t,表二 m where t.姓名 = 张三 and t.称号 = m.称号 这是得到对应的分数,最后的分数相加你可以自己写

qq_21941909
qq_21941909   2015.09.30 13:43

select t.姓名,t.称号,m.年,m.ren ,(m.年*m.ren) as score from 表一 t,表二 m where t.姓名 = 张三 and t.称号 = m.称号 这是得到对应的分数,最后的分数相加你可以自己写

qq_21941909
qq_21941909   2015.09.30 13:43

select t.姓名,t.称号,m.年,m.ren ,(m.年*m.ren) as score from 表一 t,表二 m where t.姓名 = 张三 and t.称号 = m.称号 这是得到对应的分数,最后的分数相加你可以自己写

qq_21941909
qq_21941909   2015.09.30 13:42

select t.姓名,t.称号,m.年,m.ren ,(m.年*m.ren) as score from 表一 t,表二 m where t.姓名 = 张三 and t.称号 = m.称号 这是得到对应的分数,最后的分数相加你可以自己写

qq_21941909
qq_21941909   2015.09.30 13:42

select t.姓名,t.称号,m.年,m.ren ,(m.年*m.ren) as score from 表一 t,表二 m where t.姓名 = 张三 and t.称号 = m.称号 这是得到对应的分数,最后的分数相加你可以自己写

qq_21941909
qq_21941909   2015.09.30 13:43

select t.姓名,t.称号,m.年,m.ren ,(m.年*m.ren) as score from 表一 t,表二 m where t.姓名 = 张三 and t.称号 = m.称号 这是得到对应的分数,最后的分数相加你可以自己写

holleyangyangs
holleyangyangs   2016.07.21 15:20

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

Csdn user default icon
上传中...
上传图片
插入图片