Foxtable(狐表)用户栏目专家坐堂 → [求助]用select 语句组合多个查询表


  共有3109人关注过本帖树形打印复制链接

主题:[求助]用select 语句组合多个查询表

帅哥哟,离线,有人找我吗?
81538475
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1303 积分:10518 威望:0 精华:1 注册:2018/1/20 12:40:00
[求助]用select 语句组合多个查询表  发帖心情 Post By:2018/2/11 21:36:00 [只看该作者]

 

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
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1303 积分:10518 威望:0 精华:1 注册:2018/1/20 12:40:00
  发帖心情 Post By:2018/2/11 22:23:00 [只看该作者]

这个问题现在已经解决了,但是不知道这样效率会不会比较低,因为后面还需要加入不少项。

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/2/12 9:31:00 [只看该作者]

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

 

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


 回到顶部