首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > oracle >

多表查询,该怎么解决

2012-03-23 
多表查询create table tb_department(DeptIDvarchar2(20)not null,deptNameVARCHAR2(20)not null,deptAllo

多表查询
create table tb_department (
  DeptID varchar2(20) not null,
  deptName VARCHAR2(20) not null,
  deptAllowance NUMBER not null,
  Manager VARCHAR2(20) not null,
  deptTel NUMBER not null,
  constraint PK_DEPARTMENT primary key (DeptID)
);


create table tb_salary (
salID varchar2(20) primary key,
EmpIDvarchar2(20) unique references tb_employee(EmpID),
Salary NUMBER,
bonusNUMBER,
deductNUMBER default 0
);


--加班
create table tb_Extrawork (
ewIDvarchar2(20) primary key,
  EmpID varchar(20) references tb_employee(EmpID),
  EwDate DATE ,
  EwConutNUMBERnot null
);


--考勤
create table tb_Attendance (
  attIDvarchar2(20) primary key,
  AttDate DATE, 
  EmpID varchar2(20) references tb_employee(EmpID),  
ConutAtt NUMBER 
);


我想查出 tb_salary 表中所有字段 与empid =tb_department=tb_Extrawork=tb_Attendance中attdate与EwDate 在同一个月中的数据
----------------
 EmpID Salary bonus deduct EwDate AttDate ConutAtt deptAllowance EwConut  


我发现我对多表连接查询并不懂还希望你们给我点学习建议,谢谢

[解决办法]

SQL code
select ts.EmpID,ts.Salary,ts.bonus,ts.deduct,        te.ewdate,te.EwConut,       ta.attdate,ta.ConutAttfrom   tb_salary     ts,       tb_Extrawork  te,       tb_Attendance tawhere  ts.empid = te.empidand    te.empid = ta.empidand    to_char(te.EwDate,'MM') = to_char(ta.AttDate,'MM')order by te.EwDate;要得到deptAllowance信息需要通过employee表的depID去连tb_department. 

热点排行