编写 SQL 语句完成以下5个查询(以下查询可能出现结果为空集的情况,不管是否为空集,都是正常的)。
- 找出销售税小于0.15的销售区域,显示这些销售区域的名字(不输出重复的名字)。
SELECT DISTINCT D_NAME
FROM bmsql_district
WHERE D_TAX<0.15;
- 找出给state HS(销售区域)供货的仓库都来自哪个state和city。
SELECT y.W_CITY,y.W_STATE
FROM bmsql_district x, bmsql_warehouse y
WHERE x.D_NAME='HS' AND x.D_W_ID=y.W_ID;
- 找出在某个仓库中货物数量少于18而且价格为80的货物和对应的仓库,输出这些货物的ID、对应仓库的ID和货物的剩余数量。(提示:在STOCK表和ITEM表中查询)
SELECT y.I_ID, x.S_W_ID, x.S_QUANTITY
FROM bmsql_stock x, bmsql_item y
WHERE x.S_QUANTITY<18 AND y.I_ID = x.S_I_ID AND y.I_PRICE=80;
- 找出满足以下要求的仓库的ID和名字(不输出重复的ID和名字):有来自福建省(state为FJ)且享有八折优
惠的顾客购买过该仓库的商品。
SELECT DISTINCT y.W_ID,y.W_NAME
FROM bmsql_customer x, bmsql_warehouse y
WHERE x.C_STATE='FJ' AND x.C_DISCOUNT=0.2 AND x.C_W_ID=y.W_ID;
- 找出享有七折优惠而且信用良好,同时在state UV或HS(销售区域)有购买商品的顾客,显示他们的姓名
(包括中间名)。
SELECT DISTINCT x.C_FIRST,x.C_MIDDLE,x.C_LAST
FROM bmsql_customer x
WHERE x.C_CREDIT='GC' AND x.C_DISCOUNT=0.3 AND (x.C_STATE='UV' OR x.C_STATE='HS');