34,590
社区成员
发帖
与我相关
我的任务
分享
/*查询开发部当月的工资数据
这里只能查询一个时间单位(月)的数据,如果跨几个月的工资数据,
还需要其他语句才可以.
*/
select *
deparment D inner join
(--时间点的部门人员清单
select faultid,departmentID from deptChange
where getdate()>进部门日期 and (getdate()<出部门日期 or 出部门日期 is null)
) V on D.departmentID=V.departmentID
inner join Fault F ON ON F.FAULTId= v.faultid
inner join salary s on F.FAULTId= s.faultid
where d.DepartmentName='开发部'
看错。。。
最好有id,no
一般id作为内部码关联,是不会变的,变的是no,比如你
DepartmentId Departmentno DepartmentName
1 01 开发部
即使你Departmentno 变为02,如下
DepartmentId Departmentno DepartmentName
1 02 开发部
但明细数据存储都是以id作为关联健,数据显示用no,所以查询毫无影响
select a.no,sum(b.total) from a,b where a.id=b.id