将进度/4GL 转换为 SQL

Converting Progress / 4GL to SQL

我需要将一些查询和函数从 Progress/4GL 转换为 SQL。

你能帮我开始吗?这是我需要转换的 4GL 语句之一。

for each Part where (  
  Part.NonStock = false AND  
  Part.InActive = false AND  
  Part.QtyBearing = true) no-lock , 

  each PartWhse outer-join  where ( 
    Part.Company = PartWhse.Company and 
    Part.PartNum = PartWhse.PartNum) no-lock , 

  each PartCost outer-join  where (
    Part.Company = PartCost.Company and 
    Part.PartNum = PartCost.PartNum) no-lock .

你能解释一下 4GL 位并给出一些关于 SQL 的提示吗?

我有一些 SQL 知识,但几乎没有 4GL 知识。

select *
from part p 
left outer join partwhse w on p.Company = w.Company
left outer join partCost c on p.Company = c.Company and p.PartNum = c.PartNum
where p.NonStock = false
and p.Inactive = false
and p.QtyBearing = true;

无锁位只会将 with (no lock) 添加到 table 声明中,这不是好的做法,除非真的需要,否则我会避免。