需要帮助才能获得不同的记录:
排名表
posid | issuerid
----------------------
其他表格
OtherID | issuerid | issue_date
--------------------------------------
我想要
OtherID | issuerid | Posid
--------------------------------------
对于某些发行人,Issue_date可能为null。 我想要那些其他id,issuer id和posid,如果发行人有任何其他空的话,发行日期是最大的
答案 0 :(得分:0)
SELECT otherId, issuerId, posId
FROM (
SELECT issuerId, MAX(ISNULL(issueDate,'17530101')) maxDate
FROM otherTable
GROUP BY issuerId
) M
JOIN otherTable O ON O.issuerId = M.issuerId AND O.issueDate = M.maxDate
JOIN positionTable P ON P.issuerId = M.issuerId
根据MS,日期01/01/1753是SQL 2008日期时间字段中的最小值。您可以使用任何当然值,只要它小于表中的最小值。
答案 1 :(得分:0)
SELECT OT.OtherID,PT.issuerid,PT.posid FROM [Position table] PT INNER JOIN [Other Table] OT ON PT.issuerid=OT.issuerid WHERE OT.issue_date IN
(SELECT MAX(issue_date) FROM [Other Table])
答案 2 :(得分:0)
select a.orderid, a.issueid, b.posid
from other a, position b
where a.issueid=b.issueid
and (a.issuedate = (select max(c.issuedate) from other c where c.issueid = a.issueid)
or a.issuedate is null)