大神来帮帮新手吧,一个SQL两表查询的问题
table store
store_id city space
wh1 new yourk 370
wh2 beijing 500
wh3 new york 200
wh4 london 400
table employee
store_id emp_id salary
wh1 e1 1220
wh1 e3 1210
wh2 e4 1250
wh2 e6 1230
wh3 e7 1300
wh3 e8 1240
wh4 e9 1350
wh4 e11 1280
question1:get the employees who are paid the max salary for each city.(can create temporary tables)
quetion2:get the total salary,the total space,the number of store,the number of employee and maximum salary of every city.show the results as following layout.(can create temorary tables)
City Tot.Salary Tot.Space #store #employee Max Salary
... ... ... ... ... ...
store_id city space
wh1 new yourk 370
wh2 beijing 500
wh3 new york 200
wh4 london 400
table employee
store_id emp_id salary
wh1 e1 1220
wh1 e3 1210
wh2 e4 1250
wh2 e6 1230
wh3 e7 1300
wh3 e8 1240
wh4 e9 1350
wh4 e11 1280
question1:get the employees who are paid the max salary for each city.(can create temporary tables)
quetion2:get the total salary,the total space,the number of store,the number of employee and maximum salary of every city.show the results as following layout.(can create temorary tables)
City Tot.Salary Tot.Space #store #employee Max Salary
... ... ... ... ... ...
作者: lijie19890625 发布时间: 2011-06-11
1.
SQL code
SQL code
create table employee(store_id varchar(10),emp_id varchar(10),salary int) insert into employee select 'wh1','e1',1220 insert into employee select 'wh1','e3',1210 insert into employee select 'wh2','e4',1250 insert into employee select 'wh2','e6',1230 insert into employee select 'wh3','e7',1300 insert into employee select 'wh3','e8',1240 insert into employee select 'wh4','e9',1350 insert into employee select 'wh4','e11',1280 go select * from employee a where not exists(select 1 from employee where store_id=a.store_id and salary>a.salary) /* store_id emp_id salary ---------- ---------- ----------- wh1 e1 1220 wh2 e4 1250 wh3 e7 1300 wh4 e9 1350 (4 行受影响) */
作者: qianjin036a 发布时间: 2011-06-11
SQL code
select * from tb t where salary=(select max(salary) from tb where store_id=t.store_id )
作者: fredrickhu 发布时间: 2011-06-11
第2个题是什么意思?
作者: fredrickhu 发布时间: 2011-06-11
SQL code
--question1 with t as ( select t1.city,t2.emp_id,t2.Salary from store t1, employee t2 Where t1.store_id=t2.store_id ) select t1.* from t t1 where not exists(select 1 from t t2 where t1.city=t2.city and t1.Salary<t2.Salary)
作者: X_0 发布时间: 2011-06-11
SQL code
--question2 with a as ( select t1.city,t1.space,t2.store_id,t2.emp_id,t2.Salary from store t1, employee t2 Where t1.store_id=t2.store_id ) select t1.city, TotSalary=(select sum(t2.Salary) from a t2 where t2.city=t1.city), Totspace=(select sum(t3.space) from a t3 where t3.city=t1.city), numstore=t1.store_id, numemployee=t1.emp_id MaxSalary=t1.Salary from a t1 where not exists(select 1 from a t4 where t1.city=t4.city and t1.Salary<t4.Salary)
作者: X_0 发布时间: 2011-06-11
qestion2.
SQL code
SQL code
SELECT A.[city], SUM(B.[salary]) 'Tot.salary', SUM(A.[space]) 'Tot.space', COUNT(DISTINCT A.[store_id]) '#store',COUNT(DISTINCT B.[emp_id]) '#employee', MAX(B.[salary]) 'Max Salary' FROM store A INNER JOIN employee B ON A.[store_id]=B.[store_id] GROUP BY A.[city]
作者: ForFumm 发布时间: 2011-06-11