SQL语句查询解决实际问题?

来源:百度知道 编辑:UC知道 时间:2024/06/24 18:34:41
表1(人员)
num name bank
01 张三 1000001
02 李四 1000002
03 王五 1000003
05 孔八 1000004

表2(工资数据)
num imonth jb_gz jj_gz kk_gz
01 06 1000 600 100
02 06 1200 800 300
03 06 800 200 100
04 06 2000 500 200

bank 银行帐户
imonth 月份
jb_gz 基本工资
jj_gz 奖金
kk_gz 应扣工资

问题1 请用查询语句找出缺少人员的档案工资记录
问题2 请查询每个人的当月工资数据,并计算出实发金额

问题1:我觉得问题1问的有问题
如果你是想求表1中有而表2中没有的5号孔八,是下面这条:
select * from 表1 where num=(select num from 表1 minus select num from 表2);
如果你是想求表2中有而表1中没有的4号,是下面这条:
select * from 表2 where num=(select num from表2 minus select num from 表1)
问题2:
select b.num ,a.name,a.bank,imonth,b.jb_ggz,b.jj_gz,b.kk_gz,b.jb_gz+b.jj_gz-b.kk_gz 实发金额 from 表1 a,表2 b where a.num=b.num

select a.number,a.name,a.bank from 人员 a
where a.number not in(select 工资数据.num from 工资数据);

select a.name,b.imonth,b.jb_gz,b.jj_gz,b.kk_gz,(jb_gz+jj_gz+kk_gz) as sj_gz
)
from 人员 a
inner join 工资数据 b on a.number=b.num;

要下班了 没有检测,请你注意测试一下。

保证数据正确

以下代码直接可执行
此代码为临时代码
执行完毕后不会有任何数据残存
请您放心使用

declare @member table
(
num char(2) ,
[name] nvarchar(10),
bank varchar(20)
)

insert @member(num,[name],bank)
select '01','张三','1000001'
union select '02','李四