以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]用select 语句组合多个查询表  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=114637)

--  作者:81538475
--  发布时间:2018/2/11 21:36:00
--  [求助]用select 语句组合多个查询表

 

s elect 姓名,sum(奖金) as 组长奖金 f rom (
s elect b.姓名,
case when 等级=\'YI级\' then 一级奖金*当月人天 when 等级=\'ER级\' then 二级奖金*当月人天 else 0 end as 奖金
fr om {人员信息表} a inner join
(
s elect 姓名,一级 as 组长, \'YI级\' as 等级, 部门,基本绩效,当月人天 from {XMFP} Inner JOIN {人员信息表} ON {人员信息表}.[姓名] = {XMFP}.[成员]  Where 任务开始 >= \'01-01-2018\' and 任务开始 < \'02-01-2018 \' union

s elect 姓名,二级 as 组长, \'ER级\' as 等级,部门,基本绩效, 当月人天 from {XMFP} Inner JOIN {人员信息表} ON {人员信息表}.[姓名] = {XMFP}.[成员] Where 任务开始 >= \'01-01-2018\' and 任务开始 < \'02-01-2018 \') b on a.姓名=b.组长)d group by 姓名
显示为图1结果。

 

 

s elect 姓名,基本绩效,人天,case when 人天 <=  21 then (人天 - 基本绩效)*100 when 人天 > 21 then (人天 - 21)*220 + 700 else 0 end  as 绩效奖金 from(

s elect 姓名,基本绩效,sum(当月人天) as 人天 fro m (
s elect 姓名, 部门,基本绩效,当月人天 fr om {XMFP} Inner JOIN {人员信息表} ON {人员信息表}.[姓名] = {XMFP}.[成员]  Where 任务开始 >= \'01-01-2018\' and 任务开始 < \'02-01-2018 \') e group by 姓名,基本绩效) f group by 姓名 ,基本绩效,人天

显示为图2结果。

现在不知道怎么吧两个查询表合并成一个 以姓名相连接。目前感觉结构多了有点晕。求指点


图片点击可在新窗口打开查看此主题相关图片如下:1.bmp
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:2.bmp
图片点击可在新窗口打开查看

--  作者:81538475
--  发布时间:2018/2/11 22:23:00
--  
这个问题现在已经解决了,但是不知道这样效率会不会比较低,因为后面还需要加入不少项。
--  作者:有点甜
--  发布时间:2018/2/12 9:31:00
--  

 如果查询变复杂,说明你表结构有问题。

 

 你应该修改你的表结构,不应该像你现在这样做表,改成简单结构更利于查询。