我对使用 SQL 非常陌生,我正在尝试构建我的第一个查询/报告,并希望我能在这方面得到一些帮助(这似乎是适合的地方!)。基本上,我想要创建的是一份报告,显示上次支付员工或承包商的时间。我们有一个包含所有这些信息的数据库,我只想返回每个人的最后付款日期的不同列表。我最终得到的要么是我们支付的每笔付款的清单(Person1 在每个付款日期都在清单上 20 次以上),要么是每个人的清单以及任何人的最近付款日期,而不仅仅是那个人。这是我到目前为止所拥有的:
SELECT table1.Office ,
table1.EE_No ,
table1.Name ,
table1.Code ,
table1.Freq ,
( SELECT DISTINCT
MAX(table2.PayDate)
FROM table2
) AS Last_Paycheck
FROM table1
INNER JOIN table2 ON table1.UniqueID = table2.UniqueID
WHERE table1.EndDate IS NULL
这返回的是每个员工的名单,其中列出了 2013 年 8 月 30 日,这是最后一次有人拿到薪水,但不是所有人。我在这里用 Max 函数做错了什么?我尝试了很多不同的方法,但没有运气,一定是遗漏了一些明显的东西!