请教一个二表的复合查询,请高手指点小点。
需要根据下面两个表,算出前、后期业绩的提成及提成合计,请问要怎么写呢?感觉挺复杂的,写晕了。
[解决办法]
--下面生成工资表
select a.姓名,a.职位,a.前期业绩*b.前期提成比例 as 前期提成,
a.后期业绩*b.后期提成比例 as 后期提成,
a.前期业绩*b.前期提成比例+a.后期业绩*b.后期提成比例 as 提成合计
from 员工业务情况表 a,员工提成方式表 b
where a.职位=b.职位
Select A.姓名,A.职位,前期提成=A.前期业绩*B.前期提成 ,后期提成=A.后期业绩*B.后期提成比例,
提成合计=A.前期业绩*B.前期提成+A.后期业绩*B.后期提成比例
From 员工业务情况表 A
Join 员工提成方式 B On A.职位=B.职位
declare @员工业务情况表 table
(姓名 varchar(4),职位 varchar(8),前期业绩 int,后期业绩 int)
insert into @员工业务情况表
select '张三','业务员',50000,4500 union all
select '李四','出纳',3800,1500 union all
select '王五','业务经理',150000,80000
declare @员工提成方式表 table
(职位 varchar(8),前期提成比例 numeric(18,4),后期提成比例 numeric(18,4))
insert into @员工提成方式表
select '业务员',1.2,1.3 union all
select '出纳',1.5,1.6 union all
select '业务经理',1.3,1.5
select
a.姓名,a.职位,
前期业绩*前期提成比例/100 as 前期提成,
后期业绩*后期提成比例/100 as 后期提成,
前期业绩*前期提成比例/100+后期业绩*后期提成比例/100 as 提成合计
from @员工业务情况表 a
left join @员工提成方式表 b on a.职位=b.职位
/*
姓名 职位 前期提成 后期提成 提成合计
---- -------- ---------------------- --------------------- ---------------------------
张三 业务员 600.00000000 58.50000000 658.50000000
李四 出纳 57.00000000 24.00000000 81.00000000
王五 业务经理 1950.00000000 1200.00000000 3150.00000000
*/