在考生文件夹下,打开会员数据库cdb,完成如下简单应用: (1)使用查询设计器设计一个名称为two的查询,查询2003年会员购买商品的情况,将结果按会员号排序(升序)并输出(查询去向)到two表中。two表中的字段名分别为:“会员号”、“会员名”、

admin2013-03-31  27

问题 在考生文件夹下,打开会员数据库cdb,完成如下简单应用:
    (1)使用查询设计器设计一个名称为two的查询,查询2003年会员购买商品的情况,将结果按会员号排序(升序)并输出(查询去向)到two表中。two表中的字段名分别为:“会员号”、“会员名”、“商品名”、“金额”,其中:“会员号”来自会员表cus,“金额”通过“数量*单价”计算。
设计完成后,运行该查询。
    (2)修改一个名称为three.prg的命令文件。该命令文件查询累计消费金额在5000元以上、每次购买数量大于或等于10的“女”会员的“会员号”、“会员名”、“单位”和“电话”,结果输出到表three中。该命令文件在第3行、第6行、第7行有错误,打开该命令文件,直接在错误处修改,不允许增加和删除行。修改完成后,运行该命令文件。

选项

答案(1)步骤1:在命令窗口执行命令:OPEN DATABASE cdb,打开数据库环境。 步骤2:在命令窗口执行命令:CREATE QUERY two,打开查询设计器,在“添加表或视图”对话框中,分别双击cus、cbc和comm表,将表添加到查询设计器中,此时,添加的表会按照数据库中已存在的表间联系自动为3个表在查询设计器中建立联系。 步骤3:根据题目要求,在“字段”选项卡的“可用字段”中,依次双击“cus.会员号”、“cus.会员名”和“comm.商品名”,将它们添加到“选定字段”列表中;然后在“函数和表达式”下的文本框中输入表达式:cbc.数量*cbc.单价as金额,再单击“添加”按钮,将其添加到“选定字段”列表中。 步骤4:在“筛选”选项卡的“字段名”下拉列表框中选择“<表达式…>”在“表达式生成器”对话框中输入“YEAR(cbc.日期)”,在“条件”下拉列表框中选择“=”,在“实例”文本框中输入“2003”。 步骤5:在“排序依据”选项卡中双击“选定字段”列表框中的“cus.会员号”,将其添加到“排序条件”列表框中,在“排序选项”中选择“升序”。 步骤6:执行【查询】→【查询去向】菜单命令,在弹出的“查询去向”对话框中单击“表”图标按钮,接着在“表名”中输入文件名two,单击“确定”按钮。 步骤7:最后单击“常用”工具栏中的“运行”按钮查看结果,将查询文件保存到考生文件夹下。 (2)步骤1:在命令窗口执行命令:MODIFY COMMAND three,打开three.prg程序,命令中的命令代码如下: SELECT会员号,会员名,单位,电话; FROM cus; WHERE 会员号=ANY; (SELECT 会员号; FROM cbc; WHERE数量>=10 and 性别=女; GROUP BY会员号HAVING数量*单价>=5000), INTO TABLE THREE 修改程序中的错误行,修改后的程序如下: SELECT 会员号,会员名,单位,电话; FROM cus; WHERE性别="女"and会员号=ANY,(SELECT 会员号; FROM cbc; WHERE数量>=10; GROUP BY会员号HAVING SUM(数量*单价)>=5000); &&用sum函数求和 INTO TABLE three 步骤2:保存文件修改,在命令窗口执行命令:DO THREE.PRG,执行程序文件。

解析 (1)本题主要考查的是查询设计器的使用。 查询用到了cus、cbc和comm三张表,查询的筛选条件为:year(销售日期)=2003,新字段名通过AS短语指定。
    (2)本题主要考查的是SQL查询。该查询用到了ANY谓词,在嵌套查询中,使用ANY谓词时必须同时使用比较运算符,如“=ANY”的语义是等于子查询结果中的某个值,在进行比较运算时只要子查询中有一行能使结果为真,则结果就为真。在本查询中,在内查询中先求出每次购买数量大于等于10并且消费总额大于等于5000的会员号,而消费总额应该用SUM(数量*单价)函数实现,在外查询中,在cus表中查找出性别为“女”且会员编号与任一内查询结果相同的会员信息.由于“性别”字段在cus表中,故条件“性别="女"”应写在外壹询中。
转载请注明原文地址:https://kaotiyun.com/show/pwsp777K
0

最新回复(0)