一、1套:(输出字段没有计算字段)
查询结果的去向:
1. select 自身的去向,能够用select命令中的去向字句来完成 2. 去向为select自身去向以外的其他地方:(要中转,用select自身的某种去向作为中转站,
然后用其他的命令进行数据中转) ? 文本框:(用数组做中转) ? 表格控件:
(用表做中转,永久表或者临时表,视情况来定)
select 零件名,颜色,重量 from 零件,供应 where 零件.零件号=供应.零件号 and 工程号=thisform.text1.value order by 零件名 into table pp thisform.grid1.recordsoucetype=1 thisform.grid1.recordsouce=”pp”
(直接把select命令与recordsouce绑定,这时select语句中自身的去向要设置成into cursor/into table永久表或者临时表,视情况来定) thisform.grid1.recordsoucetype=4
thisform.grid1.recordsouce=” select 零件名,颜色,重量 from 零件,供应 where 零件.零件号=供应.零件号 and 工程号=thisform.text1.value order by 零件名 into cursor temp” ? 已经存在的表(目标表可以是空表或非空表,被中转的数据可以是一条或多条,但
它们符合的条件是数据中转放到目标表的尾部,并且被中转的数据一条正好一一对应目标表的一整行。Select命令中用数组做中转站)
Select 字段1,字段2…… from……where……order by……group by……into array a Insert into 目标表名 from array a ? 已经存在的表
目标表不为空表,但有若干列为空,需要用select查询结果来填写,select命令中用表做中转站,用永久表或者临时表,视情况来定。
Select 字段1(共同字段),字段2…(所需输出字段) from…where……order by……group by……into dbf b
Close all Select 1 Use b
Index on 共同字段 tag sy1 Select 2 Use 目标表
Index on 共同字段 tag sy2
Set relation to 共同字段 into 1 Scan [for 条件]
Replace 字段名i with b.字段名i ,字段名j with b.字段名j…… endscan close all
drop table b
Scan 范围 条件 ……
Replace 字段名1 with 中转表的字段1,字段名2 with 中转表的字段2…… …… Endscan 或
DO WHILE .NOT.EOF() ……
是否符合修改条件
REPLACE 总金额 WITH temp.总金额 …… SKIP ENDDO
b表: fae faafe efa 共同字段 目标表: faafe fae efa
564 5599 4846 78 487 15487 464 356 664 Aa bb cc hdf fdg gfds
二、13套:(输出字段有计算字段)
错误方法: 错误代码:
方法一:
thisform.grid1.recordsourcetype=4
thisform.grid1.recordsource=\外币名称,; 持有数量* 现钞买入价 as 人民币数量;
FROM currency_sl INNER JOIN rate_exchange ;
ON Currency_sl.外币代码 = Rate_exchange.外币代码;
WHERE Currency_sl.姓名 =thisform.text1.value; ORDER BY 2 DESC; INTO TABLE dbfa.dbf\
方法二:
thisform.grid1.recordsourcetype=4
thisform.grid1.recordsource=\外币名称,; Currency_sl.持有数量* Rate_exchange.现钞买入价; FROM currency_sl INNER JOIN rate_exchange ;
ON Currency_sl.外币代码 = Rate_exchange.外币代码; WHERE Currency_sl.姓名 =thisform.text1.value; ORDER BY 2 DESC; INTO TABLE dbfa.dbf\
方法三:
SELECT Rate_exchange.外币名称,;
Currency_sl.持有数量* Rate_exchange.现钞买入价 as 人民币数量; FROM currency_sl INNER JOIN rate_exchange ;
ON Currency_sl.外币代码 = Rate_exchange.外币代码; WHERE Currency_sl.姓名 =thisform.text1.value; ORDER BY 2 DESC; INTO TABLE dbfa.dbf
thisform.grid1.recordsource=\
三、28套(目的地为一个已经存在的表)
在考生文件夹下完成下列操作:
(1)创建一个名为tablethree的自由表,其结构如下: 姓名 C(6) 最高金额 N(6,2) 最低金额 N(6,2) 平均金额 N(6,2)
(2)设计一个用于查询统计的表单formtwo,其界面如下图所示。其中的表格名称为Grid1,\查询统计\按钮的名称为Command1,\退出\按钮的名称为Command2,文本框的名称为Text1。
当在文本框中输入某职员的姓名并单击\查询统计\按钮,会在左边的表格内显示该职员所签订单的金额,并将其中的最高金额、最低金额和平均金额存入表tablethree中。
单击\退出\按钮将关闭表单。
(3)运行上面创建的表单formtwo,然后依次查询统计\赵小青\和\吴伟军\两位职员所签订单的相关金额。执行完后,表tablethree中应该包含两条相应的记录。
四、(目的地为一个已经存在的表)
SELECT Orderitems.订单号, sum(orderitems.数量*goods.单价) as 总金额; FROM 订单管理!orderitems INNER JOIN goods ; ON Orderitems.商品号 = Goods.商品号; GROUP BY Orderitems.订单号; ORDER BY Orderitems.订单号; INTO TABLE temp.dbf close all sele 1 use temp
index on 订单号 to ddh1 sele 2 use orders
index on 订单号 to ddh2 set relation to 订单号 into A