SQL内部联接和最近的行到目前为止

时间:2018-02-13 17:06:41

标签: sql

我不明白。我改变了一些代码。在WPLEVENT表中,每个人都有很多事件。在Persab-Table中是有历史的人。现在我需要来自Persab表的行,该行与最接近WPLEVENT.vdat Date的persab.gltab日期匹配。所以来自WPLEVENT的所有行,但只是来自PERSAB-Table的一个匹配行。

SELECT 
      persab.name, 
      persab.vorname, 
      vdat, 
      eventstart, 
      persab.rc1,
      persab.rc2
    FROM wplevent
    INNER JOIN 
      persab ON WPLEVENT.PersID = persab.PRIMKEY
    INNER JOIN 
      (SELECT TOP 1 persab.rc1
      FROM PERSAB 
      WHERE persab.gltab <= getdate() --/ Should be wplevent.vdat instead of getdate()
      ) NewTable ON wplevent.persid = persab.primkey
    WHERE 
      persid ='100458'
    ORDER BY vdat DESC

1 个答案:

答案 0 :(得分:0)

需要通过提供类似MAX()的表达式,使用具有正确语法的MAX(persab.rc1)函数。还需要在子查询中使用GROUP BY作为第二列rc2(尽管看起来你不需要它)。最后,您错过了最终ON的{​​{1}}子句。如果您提供该信息,我可以更新解决问题的答案。

INNER JOIN