這道資料庫題目你必須看看,之後的面試還真的會碰到
軟體測試資源分享
免費分享測試資料
自學測試的都關注了
前幾天後台有看到一位粉絲髮了面試題,以及早上看到也有人在問,不知道是不是同一個人,來看看題目吧,粉絲髮的是圖片的,大家可以看一下。
大家可能看不清,小編給大家寫出來,並附上小編晚上把答案寫出來,大家可以看一下,如果寫的有錯,大家可以留言告訴小編,或者有更優化的答案也是可以留言告訴小編哦,題目是這樣的。
有幾張表如下:
部門表:organization(orgid,orgName)
商品表:Goods(goodsid,goodsName)
銷售單(單頭):sale(billid,billdt,orgid,status)
銷售單(單體):sale_item(billd,goodsid,qty,price)
(欄位含義:orgld 組織編碼,orgName 組織名稱,goodsld 商品編碼,goodsName 商品名稱,billid單據編號,billdt單據日期,status 單據狀態(1生效,2作廢),qty數量 ,price 價格)(小編按圖片碼字的,如有錯誤以圖片為準)
請實現如下業務場景的SQL語句:
(1)查詢「銷售一部」本月的商品銷售明細(商品編碼,商品名稱,銷售單號。銷售日期,銷售數量)
小編解答:
SELECT si.goodsid as "商品編碼",g.goodsName as "商品名稱",si.billid as "銷售單號",s.billdt as "銷售日期",si.qty as "銷售數量"
from sale_item si LEFT join sale s on si.billid=s.billid
LEFT JOIN goods g on si.goodsid=g.goodsid
where s.orgid=1 and date_format(s.billdt,"%Y%m") = date_format(curdate() ,"%Y%m");
查詢結果:(數據為小編添加)
(2)統計2015-11-01到2015-11-05時間段內各個部門的商品銷量排名(部門編碼,部門名稱,銷售額)
小編解答:
SELECT s.orgid as "部門編碼",o.orgName as "部門名稱",si.price*si.qty as "銷售額" from sale s LEFT JOIN org o on s.orgid=o.orgid LEFT JOIN
sale_item si on s.billid=si.billid where s.billdt BETWEEN "2015-11-01" and "2015-11-05 23:59:59" ORDER BY si.qty DESC;
查詢結果:
(3)查詢銷售部門(名稱以「銷售」開頭)以外的其它各部門的銷售單列表(部門名稱,單據號,單據日期,銷售額),按照部門名稱,單據日期升序排序。
小編解答:
SELECT o.orgName as "部門名稱",s.billid as "單據名稱",s.billdt as "單據日期",(si.qty*si.price) as "銷售額"
from sale s LEFT JOIN sale_item si on s.billid=si.billid LEFT JOIN org o on s.orgid=o.orgid where o.orgName NOT LIKE "銷售%" ORDER BY s.billdt ASC;
查詢結果:
以上是小編的解答,如果不對請及時留言指正,感謝大家的支持,如果大家需要資料庫數據,可以留言告訴小編,小編上傳雲盤,大家可以聯繫一下。
覺得小編解答的還不錯的記得點贊哦,轉發就更好了
TAG:軟體測試資源分享 |