VFP查询结果的去向 下载本文

内容发布更新时间 : 2024/7/6 14:00:33星期一 下面是文章的全部内容请认真阅读。

一、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