编写程序three.prg完成下列操作:根据“外汇汇率"表中的数据产生rate表中的数据。 要求:将所有“外汇汇率”表中的数据插入rate表中并且顺序不变,由于“外汇汇率”中的“币种1”和“币种2”存放的是外币名称,而rate表中的“币种1代码”和

admin2017-06-18  485

问题 编写程序three.prg完成下列操作:根据“外汇汇率"表中的数据产生rate表中的数据。
    要求:将所有“外汇汇率”表中的数据插入rate表中并且顺序不变,由于“外汇汇率”中的“币种1”和“币种2”存放的是外币名称,而rate表中的“币种1代码”和“币种2代码”应该存放外币代码,所以插入时要做相应的改动,“外币名称”与“外币代码”的对应关系存储在“外汇代码”表中。
    注意:程序必须执行一次,保证rate表中有正确的结果。

选项

答案步骤1:在命令窗口执行命令:MODIFY COMMAND three,打开程序文件编辑器。 步骤2:在编辑器中输入如下程序代码(以下程序是通过查询设计器生成):SELECT 外汇代码.外币代码AS币种1代码,; 外汇代码a.外币代码AS币种2代码,外汇汇率.买入价,外汇汇率.卖出价;FROM外汇!外汇代码INNER JOIN外汇!外汇汇率; INNER JOIN 外汇!外汇代码外汇代码a: ON外汇汇率.币种2=外汇代码a.外币名称; ON外汇代码.外币名称=外汇汇率.币种1; INTO ARRAY arr1 INSERTINTO RATE.DBF FROMARRAY arr1 步骤3:在命令窗口执行命令:DO three.prg,执行程序文件。

解析 本题考查的是SQL超链接查询。设计SQL代码的关键是怎样建立“外汇代码”表中“外币代码”与“外汇汇率”表中“币种1”和“币种2”的联系。
    由于输出结果的“币种1”和“币种2”需要用相应的“外币代码”表示。“外汇代码”表中的“外币代码”只能利用一次,即替换“币种l”或“币种2”中的币种名称,这样没有被替换的币种仍然是中文币种名称,因此需要将“外汇代码”表利用两次,两个表中的“外币代码”分别替换“外汇汇率”表中“币种1”和“币种2”的中文币种名,被两次引用的表名要在原表名后再加“a”进行区分。
    三个袁的联接条件分别是“外汇代码.外币名称=外汇汇率.币种1”和“外汇汇率.币种2=外汇代码_a.外币名称”。查询输出的字段名可以通过AS短语重新指定名称。
    另外,查询结果要求保存到数据库表,因此要将结果保存到数组中,然后再通过数组将记录插入到表中。
转载请注明原文地址:https://kaotiyun.com/show/TIBp777K
0

最新回复(0)