访问包含 FIRST() 的 SQL 查询转换

Access to SQL Query Conversion containing FIRST()

我正在将 MS Access 查询转换为 SQL 服务器存储过程。我到了这一点:

SELECT 
    AuthNum, AuthStatus, DateCreated, 
    MIN(DateInitiated) AS DateInitiated, 
    EventClassification, 
    FIRST(PlaceOfService) AS PlaceOfService, 
    Lob, MemId, 
    MAX(NoticeDate) AS NoticeDate, 
    MAX(Tat) AS Tat, 
    FIRST(StaffId) AS StaffId
FROM 
    PA_TAT_Detailed
GROUP BY 
    AuthNum, AuthStatus, DateCreated, EventClassification, Lob, MemId
HAVING
    ((FIRST(PlaceOfService) <> 'Inpatient Hospital') 
     AND (FIRST(PlaceOfService) <> 'Office - Dental') 
     AND (FIRST(PlaceOfService) <> 'Dialysis Center'))
    AND 
    ((MAX(Tat) Is Null) OR ((MAX(Tat) >= 0) AND (MAX(Tat) <= 28)))
ORDER BY 
    AuthNum;

但是我不知道如何转换FIRST运算符。有什么想法吗?我是否需要添加与 GROUP BY 关联的 ORDER BY 以便我可以 TAKE 1

在这种情况下 MIN 是否给出相同的结果?

顺便说一句,PlaceOfService、StaffId 是字符串。

像这样的东西应该很接近了。仔细检查此 returns 信息是否正确。

SELECT top 1 AuthNum
    , AuthStatus
    , DateCreated
    , MIN(DateInitiated) AS DateInitiated
    , EventClassification
    , PlaceOfService
    , Lob
    , MemId
    , MAX(NoticeDate) AS NoticeDate
    , MAX(Tat) AS Tat
    , StaffId
FROM PA_TAT_Detailed
where PlaceOfService not in ('Inpatient Hospital', 'Office - Dental', 'Dialysis Center')
GROUP BY AuthNum
    , AuthStatus
    , DateCreated
    , EventClassification
    , PlaceOfService
    , Lob
    , MemId
    , StaffId
HAVING MAX(Tat) Is Null 
    OR (MAX(Tat) >= 0 AND MAX(Tat) <= 28)
ORDER BY AuthNum;