试题二阅读以下说明,根据要求回答下列问题。[说明] 某航空公司要开发一个订票信息处理系统,该系统的部分关系模式如下:航班(航班编号,航空公司,起飞地,起飞时间,目的地,到达时间,票价)折扣(航班编号,开始日期,结束日期,折扣)旅客(身份证号,姓名,性别,出生日期,电话,VIP折扣)购票(购票单号,身份证号,航班编号,搭乘日期,购票金额)有关关系模式的属性及相关说明如下:(1)航班表中的起飞时间和到达时间不包含日期,同一航班不会在一天出现两次及两次以上;(2)各航空公司会根据旅客出行淡旺季适时调整机票的折扣,旅客购买机票的购票金额计算公式为:票价×折扣×VIP折扣,其中旅客的VIP折扣与该旅客已购买过的机票的购票金额总和相关,在旅客每次购票后被修改。VIP折扣值的计算由函数float vip_value(char[18]身份证号)完成。根据以上描述,回答下列问题。
请将如下SQL语句的空缺部分补充完整。(1)查询搭乘日期在2012年1月1日至2012年12月31日之间,且合计购票金额大于等于10000元的所有旅客的身份证号、姓名和购票金额总和,并按购票金额总和降序输出。SELECT 旅客.身份证号,姓名,SUM(购票金额)FROM 旅客,购票WHERE ______GROUP BY ______;ORDER BY ______;(2)经过中转的航班与相同始发地和目的地的直达航班相比,会享受更低的折扣。查询从广州到北京,经过一次中转的所有航班对,输出广州到中转地的航班编号、中转地、中转地到北京的航班编号。SELECT ______FROM 航班航班1,航班 航班2WHERE ______;
参考答案:身份证号=购票.身份证号 AND 搭乘日期 BETWEEN ’B0AB/A/A’ AND ’B0AB/AB/CA’ 旅客.身份证号,姓名 HAVlNG SUM(购票金额)>=A0000 SUM(购票金额) DESC 航班A.航班编号,航班A.目的地,航班B.航班编号 航班A.起飞地=’广州’ AND 航班B.目的地=’北京’ AND 航班A.目的地=航班B.起飞地;
解析:(1)查询搭乘日期在2012年1月1日至2012年12月31日之间,且合计购票金额大于等于10000元的所有旅客的身份证号、姓名和购票金额总和,并按购票金额总和降序输出。 SELECT 旅客.身份证号,姓名,SUM(购票金额) FROM 旅客,购票 WHERE 旅客.身份证号=购票.身份证号 AND 搭乘日期 BETWEEN ’2012/1/1’ AND ’2012/12/31’ GROUP BY 旅客.身份证号,姓名 HAVING SUM(购票金额)>=10000; ORDER BY SUM(购票金额) DESC; (2)经过中转的航班与相同始发地和目的地的直达航班相比,会享受更低的折扣。查询从广州到北京,经过一次中转的所有航班对,输出广州到中转地的航班编号、中转地、中转地到北京的航班编号。 SELECT 航班1.航班编号,航班1.目的地,航班2.航班编号 FROM 航班航班1,航班航班2 WHERE 航班1.起飞地=’广州’ AND 航班2.目的地=’北京’ AND 航班1.目的地=航班2.起飞地;