VFP中的SQLSELECT语句使用要点.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
VFP中的SQLSELECT语句使用要点

VFP 中的 SQL SELECT 语句使用要点作者: 康康(张初康) 第一节 select - SQL 的工作流程 再复杂的 SQL SELECT 命令,也是由一些基本的结构组成的。所以在看、去做一条很复杂的 SQL SELECT 命令时,要会把它一级一级的折分,最后折成最简单的,这样才容易理解。而这个折分过程,如果不熟悉 SQL SELECT 命令的工作流程,那就比较难折分了。 大体来说,它是先根据联接条件(即联接条件 on 中的表达式),把几个的表合成一个临时表,然后根据 where 中的条件进行过滤,过滤出来的结果根据分组条件再把这个临时表分成一组一组,然后对分别对些组进行字段计算,最后又得出一个临时表,然后又根据 having 中的条件对这个临时表进行再次过滤,最后输入到指定的地方,如数组、表等。它中间生成的临时表对用户来说,是完全透明的,用户是不可能使用、也不能创建,它是由系统自己创建、自己使用、自己撤除,完全不受用户控制的。我举个例子:有二个表:提货单 thd、提货单明细 thdmx: thd 提货单号????提货日期 thdbh????thrq 01????2000/01/02 02????2000/01/15 03????2000/02/01 thdmx 提货单号????产品编号????提货数量 thdbh????cpbh????Thsl 01????001????5 01????003????15 01????005????12 02????001????13 02????002????14 02????005????20 03????002????14 现在有个要求:要统计 day1 = 2000/01/01 至 day2 = 2000/01/20 这段时间内,提货数量大于 10 的产品有那些,它们各自的总提货量是多少。命令如下: sele cpbh,sum(thsl) ; ??from thd join thdmx ; ????on thd.thdbh=thdmx.thdbh.and.thsl10.and.betw(thrq,day1,day2) ; ??grou by cpbh ; ??into curs temp1 为什么把 thsl0 和 betw(thrq,day1,day2) 这二个条件表达式放在 on 那里,参见 on、where 与 having 的区别。它的工作流程: 首先根据 on 中的过滤条件,对所涉及的表进行预处理。过程如下: 两个表根据 thd.thdbh = thdmx.thdbh 进行合并,变成一个这样的临时表: thdbh1????thrq????????thdbh2????Cpbh????thsl 01????2000/01/02????01????001????5 01????2000/01/02????01????003????15 01????2000/01/02????01????005????12 01????2000/01/02????02????001????13 01????2000/01/02????02????002????14 01????2000/01/02????02????005????20 01????2000/01/02????03????002????14 02????2000/01/15????01????001????5 02????2000/01/15????01????003????15 02????2000/01/15????01????005????12 02????2000/01/15????02????001????13 02????2000/01/15????02????002????14 02????2000/01/15????02????005????20 02????2000/01/15????03????002????14 03????2000/02/01????01????001????5 03????2000/02/01????01????003????15 03????2000/02/01????01????005????12 03????2000/02/01????02????001????13 03????2000/02/01????02????002????14 03????2000/02/01????02????005????20 03????2000/02/01????03????002????14 合并是按照笛卡尔积进行计算的,即二个表都有 10 个记录,那积就会有 10*10 = 100 个记录,这是很历害的。但因为 on 条件中有过滤条件,所以 VFP 并不会这么笨,它会

文档评论(0)

gangshou + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档