解释代码

时间:2015-09-04 14:58:30

标签: sql sql-server events

回顾一些代码,我绊倒了这个我不了解它的代码的SQL代码。

INNER JOIN PPORDFIL_SQL 
    on dbo.att_Synergy_Absences.ItemCode = PPORDFIL_SQL.item_no   
    and PPORDFIL_SQL.id in 
        (Select top 1 p2.ID
         from  PPORDFIL_SQL as p2
         where p2.item_no  = PPORDFIL_SQL.item_no 
           and p2.ord_status = PPORDFIL_SQL.ord_status 
           and dbo.att_Synergy_Absences.syscreated <= ppordfil_sql.entered_dt 
         order by p2.id )

根据我的理解,无论入场金额多少,无论最早的入场次数是多少都可以。

例如,同一item_no有多个项目,但订单号不同,因此即使同一item_no的订单号有多个,它也只会显示一个条目。

我尝试运行代码,但它没有用。

对它的作用或做的任何评论我实际上是正确的吗?洛尔

1 个答案:

答案 0 :(得分:0)

您的两个加入条件相互干扰。

试试这样:

INNER JOIN PPORDFIL_SQL on  PPORDFIL_SQL.id = (
  Select top 1 p2.ID 
  from  PPORDFIL_SQL  as p2
  where p2.item_no  = dbo.att_Synergy_Absences.ItemCode 
  and p2.ord_status = PPORDFIL_SQL.ord_status 
  and dbo.att_Synergy_Absences.syscreated <= ppordfil_sql.entered_dt 
  order by p2.id 
)