題目如上,下面是我按照上面的表字段本身建的表mysql
carsql
customerspa
employee3d
saleblog
下面是對第四問的的解答,用的是mysql 的鏈接查詢,可能方法有點麻煩。class
個人想法很簡單,這個查詢針對多個表,我就把須要查詢的結果一個個的先作簡單查詢,最後再進行組合。方法
第一步:從sale和car表中查出每一個員工的銷售額:im
SELECT sale.EMPnum,SUM((sale.CARnum*car.Cprice)) AS money FROM sale,car WHERE sale.CARnum=car.Cid GROUP BY EMPnum;#從sale和car表中查出每一個員工的
第二步:查詢每一個員工的銷售數量:查詢
SELECT EMPnum,COUNT(EMPnum) AS num FROM sale GROUP BY EMPnum;#查詢每一個員工的銷售數量
第三步:查詢員工的名稱: img
SELECT Eid,Ename FROM Employee;#查詢員工的名字
第四步:將第一步和第二步的結果作爲此次查詢的表,查詢每一個員工的銷售額和銷售數量:
SELECT t1.EMPnum,t1.money,t2.num FROM (SELECT sale.EMPnum,SUM((sale.CARnum*car.Cprice)) AS money FROM sale,car WHERE sale.CARnum=car.Cid GROUP BY EMPnum) AS t1 ,(SELECT EMPnum,COUNT(EMPnum) AS num FROM sale GROUP BY EMPnum) AS t2 WHERE t1.EMPnum=t2.EMPnum;
第五步:將第四步的結果和第三步的結果作爲這步的查詢表,查詢最後的結果
SELECT t3.EMPnum,t3.money,t3.num,t4.Ename FROM (SELECT t1.EMPnum,t1.money,t2.num FROM (SELECT sale.EMPnum,SUM((sale.CARnum*car.Cprice)) AS money FROM sale,car WHERE sale.CARnum=car.Cid GROUP BY EMPnum) AS t1 ,(SELECT EMPnum,COUNT(EMPnum) AS num FROM sale GROUP BY EMPnum) AS t2 WHERE t1.EMPnum=t2.EMPnum) AS t3,(SELECT Eid,Ename FROM Employee) AS t4 WHERE t3.EMPnum=t4.Eid;