⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mapinfo重点及难点讲解1.htm

📁 关于mapinfo的介绍
💻 HTM
📖 第 1 页 / 共 5 页
字号:
        <P align=justify><FONT color=#000000>Where 
        Condition:Order_Amount&gt;100</FONT></P>
        <P align=justify><FONT color=#000000>如果一个查询包含了上面这个Where 
        Condition子句,MapInfo就只选择那些订单金额值大于100的行。</FONT></P>
        <P align=justify><FONT color=#000000>Where 
        Condition区可以包含两个或更多的逻辑表达式,但这些表达式必须被词“And”或“Or”隔开。如果表达式是用词And连接,MapInfo仅选择那些两个标准满足的行。如果表达式是用Or连接,MapInfo就选择满足其中任何一个标准的行。</FONT></P>
        <P align=justify><FONT color=#000000>过滤标准可用于你的基础表的任何一个列,不管你是否在Select 
        Columns区中包括了这个列。</FONT></P>
        <P align=justify><FONT color=#000000>列可以用列名或列号来引用,列号指明是在Select 
        Columns中已有的列的顺序。</FONT></P>
        <P align=justify><FONT 
        color=#000000>因此,“Col”和“col6”分别指第一和第六列,号之前必须有字母“Col”。</FONT></P>
        <P align=justify><FONT color=#000000>用SQL Select对话框的Where 
        Condition区的基本目的可能是两个:行过滤和关联。Where condition区服务于多个目的。在某些场合下,你可能要用一个Where 
        condition表达式来过滤你的表,以便你只看到满足一定标准的那些列。在一些场合下,你要利用Where 
        condition区来指定一种关联,以便你的查询能够包括来自两个或更多个表中的列。</FONT></P>
        <P align=justify><FONT color=#000000>注意:你不可以在Where 
        condition区中使用集合函数(apgregate function)。</FONT></P>
        <P align=justify><FONT color=#000000>Order by Columns(按列排序)区</FONT></P>
        <P align=justify><FONT color=#000000>选择升序和降序</FONT></P>
        <P align=justify><FONT 
        color=#000000>默认,MapInfo是用升序排序一个表。如果你要用一个字符型字段进行排序,升序意味着A出现在B之上,如此类推。如果你对一个数字型字段进行排序,小的数值出现在大的数值之上。</FONT></P>
        <P align=justify><FONT color=#000000>为了以降序排序,以便大的数出现在小的数之上,要在Order By 
        Columns区中的列名之后放一个词desc。例如,你查询World表,用如下的方式:</FONT></P>
        <P align=justify><FONT color=#000000>Order By Columns:Population 
        desc</FONT></P>
        <P align=justify><FONT color=#000000>是用Population对这个表排序,降序。</FONT></P>
        <P align=justify><FONT 
        color=#000000>当MapInfo执行多级排序时,各级排序有其自己的升/降序设置。这样,下面的例子按State列执行升序,然后按Population列执行降序:</FONT></P>
        <P align=justify><FONT color=#000000>Select Columns: *</FONT></P>
        <P align=justify><FONT color=#000000>From Table: City_1K</FONT></P>
        <P align=justify><FONT color=#000000>Order By Columns: State,Population 
        desc</FONT></P>
        <P align=justify><FONT color=#000000>在Order By 
Columns区中的列名句法:</FONT></P>
        <P align=justify><FONT 
      color=#000000>在这个区,你有两种方法输入一个列名:</FONT></P></BLOCKQUOTE>
      <UL>
        <LI><FONT color=#000000>输入列的名字(例如前例中的列名state)</FONT> 
        <LI><FONT color=#000000>输入列号,这里的1代表排列在Select 
        Columns区中的第一列,在数字之前不要打入“Col”。</FONT> </LI></UL>
      <BLOCKQUOTE>
        <BLOCKQUOTE>
          <P align=justify><FONT 
          color=#000000>如果你要用一个导出列进行排序并且这个导出列有一个别名的话,你可以在Order By 
          Columns区输入这个别名。如果导出列没有别名,就输入列号(例如1)。</FONT></P></BLOCKQUOTE></BLOCKQUOTE>
      <P align=justify><FONT color=#000000>用Order By Columns字段对结果表排序</FONT></P>
      <P align=justify><FONT color=#000000>在SQL Select对话框中,利用Order By 
      Columns区,允许你对结果表的行进行排序。排序影响到出现在Browser窗口中和各个行从顶到底出现的顺序。如果你打算把Browser窗口作为一报告打印出来,你可能要对你的结果表进行排序。</FONT></P>
      <P align=justify><FONT color=#000000>Order By 
      Columns区是可选的,如果你留下这个区空着,结果表就不被排序。如果你在这在区输入一个列名,MapInfo就根据那个列的内容对结果表进行排序。</FONT></P>
      <P align=justify><FONT color=#000000>实现多级排序</FONT></P>
      <P align=justify></FONT><FONT face=宋体 color=#000000>在Order By 
      Columns指明多级排序的列名要用逗号隔开。依次为第一级、第二级</FONT><FONT color=#000000>…</FONT></P>
      <P><FONT face=宋体><FONT color=#000000> </FONT></P>
      <P align=justify><FONT color=#000000>Group By 
      Columns区(按列分组)建立小计用</FONT></P>
      <P align=justify><FONT color=#000000>用Group By Columns区小计结果表</FONT></P>
      <P align=justify><FONT color=#000000>SQL Select对话框中Group By 
      Columns区是可选的。如果你在这个区输入一个或多个列名,结果表将含有这个表的小计(Subtotals),或集合信息。</FONT></P>
      <P align=justify><FONT 
      color=#000000>注意:结果表变成了小计表,没原始数据,小计的依据是列值相同者。</FONT></P>
      <P align=justify><FONT color=#000000>当你指定一个Group By 
      Columns值时,MapInfo查询所指定的列,看那个列的那些行有相同的值。因此,结果你有一个顾客数据库,并且你是按StateName列分组,MapInfo就会把所有California的顾客放列到另一个组,如此等等。MapInfo然后计算各组的集合信息(总合,均值等)。</FONT></P>
      <P align=justify><FONT color=#000000>为指定小计标准:</FONT></P>
      <BLOCKQUOTE>
        <P align=justify><FONT color=#000000>1.在Group By 
        Columns区,输入MapInfo将用来计算小计的列名或列号</FONT></P>
        <BLOCKQUOTE>
          <P align=justify><FONT color=#000000>例如:</FONT></P>
          <P align=justify><FONT 
          color=#000000>如果你要在各个州的基础上合计你的顾客表,输入表示顾客所在的州的列名(例如StateName)到Group By 
          Columns区</FONT></P></BLOCKQUOTE>
        <P align=justify><FONT color=#000000>2.输入同样的列名(例如StateName)到Select 
        Columns区。</FONT></P>
        <P align=justify><FONT color=#000000>3.在Select 
        Columns区输入一个或多个集合操作符(Sum,Count,Avg,Min,或Max)。记住,要用逗号分隔这些集合操作符。</FONT></P>
        <P align=justify><FONT color=#000000>输入表达式Count(*)。(在Select 
        Columns区)</FONT></P>
        <P align=justify><FONT 
        color=#000000>如果你要计算各州的全部销售( Sales)合计,输入如Sum(Sales)之类的表达式。(这里的Sales是列名)。</FONT></P>
        <P align=justify><FONT color=#000000>在Select 
        Columns区中,那些非集合函数基础的所有列还必须在Group By 
        Columns区列出。这些是MapInfo为了确定分组要检测的列。这些列具有独特数据值的每一个组在查询表中有一个单独的行。导出列应该用表示相对位置的编号指定,“1”、“2”、“5”分别代表第一、第二和第五列。</FONT></P>
        <P align=justify><FONT color=#000000>例如:</FONT></P>
        <P align=justify><FONT color=#000000>Select Columns: 
        Month(sick_date),count(*) </FONT></P>
        <P align=justify><FONT color=#000000>From Toltes: sickdays</FONT></P>
        <P align=justify><FONT color=#000000>Group By Columns: 1</FONT></P>
        <P align=justify><FONT 
        color=#000000>这个查询告诉MapInfo,计算每一个有记录的全部行数并生成一个按月分组的查询表。结果表第月有一行,那个行有一个表示有多少人在那月生病的列。</FONT></P>
        <P align=justify><FONT color=#000000>在Group By 
        Columns区,你应该按列名或列编号来引用列(1代表列在Select 
        Columns区的第一个列)。当你不使用联接时,你可以用正规的字段名。当你用导出列的值分组时,或者如果你联接两个表时,你必须用列号代替列名。按号引用列时,数字前不要加“Col”字样。</FONT></P>
        <P align=justify><FONT color=#000000>你可以输入一个以上的列到Group By 
        Columns区。MapInfo首先按你列出的第一个列来对行进行分组,在那些组中,MapInfo再按第二个列进行再分组,以此类推。对于各个结果行,查询表都含有基于集合函数的全部列的集合值。</FONT></P>
        <P align=justify><FONT 
        color=#000000>(这里有一个问题,每一个结果行只能是一个集合函据的结果吗?可否不同的列执行不同的集合函数?)</FONT></P>
        <P align=justify><FONT color=#000000>注:在Select 
        Columns区中,那些基于集合函数的列不能列入Group By Columns区内。但是,Select 
        Columns区中那些不是基于集合函数的每一个列应该列入Group By Columns区内。</FONT></P>
        <P align=justify><FONT color=#000000>Group By 
        Columns的例子(按列分组的例子)</FONT></P>
        <P align=justify><FONT 
        color=#000000>设想你有一顾客订单表。表中的各个行代表一分单独的订单。表中有一个列含有接受订单的销售代表的名字,另一个列含有顾客的名字,再有一个列含有订单金额(Amount).</FONT></P>
        <P align=justify><FONT color=#000000>对每个销售代表,你想找出:</FONT></P></BLOCKQUOTE>
      <UL>
        <LI><FONT color=#000000>那个销售代表接受的订单数量</FONT> 
        <LI><FONT color=#000000>那个代表登录的订单平均金额</FONT> 
        <LI><FONT color=#000000>那个代表填写的订单的总金额</FONT> </LI></UL>
      <BLOCKQUOTE>
        <BLOCKQUOTE>
          <P align=justify><FONT color=#000000>如下的SQL 
          Select查询产生所要求的结果:</FONT></P>
          <P align=justify><FONT color=#000000>Select 
          Columns:Sales_Rep,count(*),average(Amount),sum(Average)</FONT></P>
          <P align=justify><FONT color=#000000>From tables: Order</FONT></P>
          <P align=justify><FONT color=#000000>Group By 
          Columns:Seles_Rep(这意味着按销售代表统计)</FONT></P>
          <P align=justify><FONT color=#000000>注意:Group By Columns区和Select 
          Columns区的三个集合操作符。Mapinfo要做的是:</FONT></P>
          <P align=justify><FONT color=#000000>1.找出对应某一个销售代表的全部行</FONT></P>
          <P align=justify><FONT 
        color=#000000>2.计算行数:Count(*)</FONT></P></BLOCKQUOTE>
        <P align=justify><FONT 
        color=#000000>3.计算这个销售代表的定单的平均金额:Avg(Amount)</FONT></P>
        <P align=justify><FONT 
        color=#000000>4.计算这个销售代表的定单的总金额:Sum(Amount)</FONT></P>
        <P align=justify><FONT 
        color=#000000>MapInfo对每一个销售代表都要做这些工作,然后产生一个对每一个代表有一个单独行的结果表。</FONT></P>
        <P align=justify><FONT 
        color=#000000>集合操作符(Count,Avg和Sum)小计有相同销售代表值的全部行的数据值。</FONT></P>
        <P align=justify><FONT color=#000000>考虑这样一个SQL Select:</FONT></P>
        <P align=justify><FONT color=#000000>Select columns: 
        Customer,Count(*),Avg(Amount),Sum(Amount)</FONT></P>
        <P align=justify><FONT color=#000000>From tables: Orders</FONT></P>
        <P align=justify><FONT color=#000000>Group By Columns: 
        Customer</FONT></P>
        <P align=justify><FONT 
        color=#000000>这是一个在体质上与前一个相同的查询,除了我们现在是按顾客分组而不是按销售代表分组外,这个SQL 
        Select找出订单Count,Average和Sum是针对各个顾客的而不是销售代表的。</FONT></P>
        <P align=justify><FONT color=#000000>下面的例子说明按多列分组:多重分组</FONT></P>
        <P align=justify><FONT color=#000000>Select 
        olumns:Sales_Rep,Customer,Count(*),Avg(amount),Sum(Amount)</FONT></P></BLOCKQUOTE>
      <P align=justify><FONT color=#000000>From tables: Orders</FONT></P>
      <P align=justify><FONT color=#000000>Group By 
      Columns:Sales_Rep,Customer</FONT></P>
      <BLOCKQUOTE>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -