牛客SQL第56題

2021-10-09 07:42:59 字數 1828 閱讀 3682

獲取所有員工的emp_no、部門編號dept_no以及對應的bonus型別btype和received,沒有分配獎金的員工不顯示對應的bonus型別btype和received

create

table

`dept_emp`

(`emp_no`

int(11)

notnull

,`dept_no`

char(4

)not

null

,`from_date`

date

notnull

,`to_date`

date

notnull

,primary

key(

`emp_no`

,`dept_no`))

;

create

table

`emp_bonus`

(emp_no int(11

)not

null

,received datetime

notnull

,btype smallint(5

)not

null

);

create

table

`employees`

(`emp_no`

int(11)

notnull

,`birth_date`

date

notnull

,`first_name`

varchar(14

)not

null

,`last_name`

varchar(16

)not

null

,`gender`

char(1

)not

null

,`hire_date`

date

notnull

,primary

key(

`emp_no`))

;

返回的結果格式如下:

e.emp_no

dept_no

btype

received

10001

d001

12010-01-01

10002

d001

22010-10-01

10003

d004

32011-12-03

10004

d004

12010-01-01

10005

d003

10006

d002

10007

d005

10008

d005

10009

d006

10010

d005

10010

d006

先將 employees與dept_emp 用 inner join 連線,挑選出分配了部門的員工,再用 left join連線 emp_bonus。

select ee.emp_no,ee.dept_no,eb.btype,eb.received

from

(employees e inner

join dept_emp de on e.emp_no=de.emp_no) ee

left

join emp_bonus eb on ee.emp_no=eb.emp_no

牛客SQL練習第57題

使用含有關鍵字exists查詢未分配具體部門的員工的所有資訊。create table employees emp no int 11 notnull birth date date notnull first name varchar 14 not null last name varchar 1...

牛客SQL練習第60題

按照salary的累計和running total,其中running total為前n個當前 to date 9999 01 01 員工的salary累計和,其他以此類推。具體結果如下demo展示。create table salaries emp no int 11 notnull salary...

牛客SQL練習第68題

牛客每天有很多人登入,請你統計一下牛客每個使用者最近登入是哪一天,用的是什麼裝置.有乙個登入 login 記錄表,簡況如下 第1行表示id為2的使用者在2020 10 12使用了客戶端id為1的裝置登入了牛客網 第4行表示id為3的使用者在2020 10 13使用了客戶端id為2的裝置登入了牛客網 ...