在连接同一文件中的记录的情况下接收

可以连接同一文件中的记录。换言之,可以在 FROM 中重复指定文件。例如,可以使用此功能比较某些记录中的数据。

例如,SUPPLIERS 文件显示多个供应商提供相同的零件。用户可能会想要知道哪个供应商设定的价格是另一个供应商的两倍或两倍以上。要将必要的信息传输到 workstation,请指定:
库/文件(成员) SUPPLIERS, SUPPLIERS
JOIN BY T1.PARTNO = T2.PARTNO
SELECT T1.PARTNO、T1.SUPPNO、T1.PRICE、T2.SUPPNO 和 T2.PRICE
WHERE T1.PRICE > 2 * T2.PRICE
ORDER BY T1.PARTNO

已在 FROM 中指定了相同的文件两次。JOIN BY 指定连接具有相同零件号的记录。这将创建一个连接记录,其中包含有关单个零件的两个供应商的信息。用户可以发现价格是另一个供应商的两倍或两倍以上的记录。

SUPPLIERS 文件中的记录与 SUPPLIERS 文件中的所有记录(包括其本身)逐条进行比较。当找到相同的零件号时,将链接两个相应的记录。对 SUPPLIERS 文件中的每个记录执行此处理。

对于每条记录,将第一个供应商的价格与第二个供应商的价格进行比较。当第一个供应商的价格是第二个供应商的价格的两倍或两倍以上时,仅保留包含第一个供应商价格的记录。

最终结果如下所示:
     Field:  T1.PARTNO   T1.SUPPNO   T1.PRICE   T2.SUPPNO   T2.PRICE
             ---------   ---------   --------   ---------   --------
  Record 1:       221          51        .30          54        .10
         2:       231          51        .10          54        .04
         3:       241          53        .08          54        .02
         4:       241          61        .05          54        .02