求教多表合并的问题

我才是心翼 2016-08-20 10:16:18
如下表(仅是举个例子,没有主键):

姓名 月工资 月份
张三 100 7
张三 150 8
李四 100 7
李四 180 8


查询出,8月的月工资 - 7月的月工资小于等于50的即可

如上表,想要查询出
姓名 月工资 月份
张三 100 7
张三 150 8
---------------------------------------------------------------------
接受高手观点后,用如下的SQL语句:
select *
from 如下表 a, 如下表 b
where a.月份=8
and b.月份=7
and a.姓名=b.姓名
and a.月工资<=b.月工资+50


这样查询出来的外型是:
a.姓名\a.工资\a.月份\b.姓名\b.工资\b.月份
张三 100 7 张三 150 80

这样的外型我不需要呢,求教下如何更改可以恢复成:
姓名 月工资 月份
张三 100 7
张三 150 8
...全文
145 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
中国风 2016-08-21
  • 打赏
  • 举报
回复
差有三种显示方式 ,自已选 用以下方法不会影响记录数

SELECT  a.* ,
        a.月工资 - b.月工资 AS 差1
		, a.月工资 - nz(b.月工资,0) AS 差2
		, nz(a.月工资 - b.月工资,0) AS 差3
FROM    表 AS a
        LEFT JOIN 表 AS b ON a.姓名 = b.姓名
                             AND a.月份 = b.月份 + 1;

/*
姓名	月工资	月份	差1	差2	差3
张三	100	7	NULL	100	0
张三	150	8	50	50	50
李四	100	7	NULL	100	0
李四	180	8	80	80	80
*/

中国风 2016-08-21
  • 打赏
  • 举报
回复
a.月工资<=b.月工资+50 你的这条件决定结果集,明白? 比如:
SELECT a.*,a.月工资-nz(b.月工资,0) as 上一个月差
FROM Tab1 as a
left  join Tab1 as b on a.姓名=b.姓名 and a.月份=b.月份+1
我才是心翼 2016-08-21
  • 打赏
  • 举报
回复
引用 3 楼 roy_88 的回复:
以你的条件为例 e.g.
SELECT a.*,a.月工资-b.月工资 as 上一个月差
FROM Tab1 as a
inner join Tab1 as b on a.姓名=b.姓名 and a.月份=b.月份+1
where  a.月工资<=b.月工资+50;
这样出来的外形也还是: 这样查询出来的外型是: a.姓名\a.工资\a.月份\b.姓名\b.工资\b.月份 张三 100 7 张三 150 80
我才是心翼 2016-08-21
  • 打赏
  • 举报
回复
引用 3 楼 roy_88 的回复:
以你的条件为例 e.g.
SELECT a.*,a.月工资-b.月工资 as 上一个月差
FROM Tab1 as a
inner join Tab1 as b on a.姓名=b.姓名 and a.月份=b.月份+1
where  a.月工资<=b.月工资+50;
出不来啊亲,看起来更复杂了
ACMAIN_CHM 2016-08-21
  • 打赏
  • 举报
回复
select a.*
from 如下表 a, 如下表 b
where a.月份=8
and b.月份=7
and a.姓名=b.姓名
and a.月工资<=b.月工资+50
unin all
from b.*
where a.月份=8
and b.月份=7
and a.姓名=b.姓名
and a.月工资<=b.月工资+50
中国风 2016-08-20
  • 打赏
  • 举报
回复
以你的条件为例 e.g.
SELECT a.*,a.月工资-b.月工资 as 上一个月差
FROM Tab1 as a
inner join Tab1 as b on a.姓名=b.姓名 and a.月份=b.月份+1
where  a.月工资<=b.月工资+50;
中国风 2016-08-20
  • 打赏
  • 举报
回复
and a.月工资<=b.月工资+50--这条件不满足怎么显示 月份是否固定7/8
我才是心翼 2016-08-20
  • 打赏
  • 举报
回复
大神求教啊。急等

7,712

社区成员

发帖
与我相关
我的任务
社区描述
Microsoft Office Access是由微软发布的关系数据库管理系统。它结合了 MicrosoftJet Database Engine 和 图形用户界面两项特点。
社区管理员
  • Access
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧