求一条sql语句 两张表两个字段sum求和
求一条sql语句两张表两个字段sum求和表a姓名销售业绩张三5万李四10万王五7万张三2万李四6万王五3万表b姓名工作年限张三5年李四10年王五7年张三5年李四10年王五...
求一条sql语句 两张表两个字段sum求和
表a
姓名 销售业绩
张三 5万
李四 10万
王五 7万
张三 2万
李四 6万
王五 3万
表b
姓名 工作年限
张三 5年
李四 10年
王五 7年
张三 5年
李四 10年
王五 9年
期待显示结果
姓名 工作年限 销售业绩
张三 10年 7万
李四 20年 16万
王五 16年 10万 展开
表a
姓名 销售业绩
张三 5万
李四 10万
王五 7万
张三 2万
李四 6万
王五 3万
表b
姓名 工作年限
张三 5年
李四 10年
王五 7年
张三 5年
李四 10年
王五 9年
期待显示结果
姓名 工作年限 销售业绩
张三 10年 7万
李四 20年 16万
王五 16年 10万 展开
2个回答
展开全部
select B.*,销售业绩 from (select 姓名,cast(sum(cast(replace(销售业绩,'万','') as float)) as varchar(10))+'万' 销售业绩 from 表a group by 姓名) A
JOIN (select 姓名,cast(sum(cast(replace(工作年限,'年','') as float)) as varchar(10))+'年' 工作年限 from 表b group by 姓名) B
ON A.姓名=B.姓名
追答
上面是SQL Server写法,Oracle中这样写:
Select B.*,销售业绩 From (Select 姓名,Sum(to_number(Replace(销售业绩,'万','')))||'万' 销售业绩 From 表a Group By 姓名) A
JOIN (select 姓名,sum(to_number(replace(工作年限,'年','')))||'年' 工作年限 from 表b group by 姓名) B
ON A.姓名=B.姓名
展开全部
select 表a.姓名,sum(表b.工作年限) as 工作年限,sum(表a.销售业绩)as 销售业绩 from 表a left join 表b on 表a.姓名=表b.姓名 group by 姓名
更多追问追答
追问
您好 之前我写的语法和您类似 但不能得到正确的求和 我不知道为什么 您的语句也不能得到正确的结果
追答
那是因为你的表格里面销售业绩和工作年限两个字段都不是数值型,不能求和,在原始表里改字段类型才行,至于万和年字查询结果再添加。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询