无法在最大日期之前获得结果

Cannot get a result by Max date

我试图获取突出显示的结果,因为它是最新日期。我第一次在这里问问题,所以如果不清楚,我会提前道歉。谢谢

通过使用以下查询

SELECT 
MAX(A.Insp_Date) AS Last_Insp_Date
,A.Doc_ID
,A.Service_Call_ID
,A.Customer_ID
,A.Address_Code
,A.State
,A.Branch
,B.HydLoc
,B.FlwOutSz
,B.StaticPSI
,B.ResidualPSI
,B.PititPSI
,B.FlwGPM


FROM [dbo].[fofHydrntInspHdr] AS A
    LEFT OUTER JOIN [dbo].[fofHYD2800FlwTstRT] AS B
        ON A.Doc_ID = B.Doc_ID

WHERE A.Doc_ID > 0
AND A.Address_Code = 'GEN0021'        

GROUP BY
A.Doc_ID
,A.Service_Call_ID
,A.Customer_ID
,A.Address_Code
,A.State
,A.Branch
,B.HydLoc
,B.FlwOutSz
,B.StaticPSI
,B.ResidualPSI
,B.PititPSI
,B.FlwGPM

我也尝试过使用 max doc_id 但它仍然不起作用。感谢任何帮助。

另一个不需要两次扫描 table 的选项是使用 window 函数过滤最新的:

with r as
(
    SELECT 
    A.Insp_Date AS Last_Insp_Date
    ,A.Doc_ID
    ,A.Service_Call_ID
    ,A.Customer_ID
    ,A.Address_Code
    ,A.State
    ,A.Branch
    ,B.HydLoc
    ,B.FlwOutSz
    ,B.StaticPSI
    ,B.ResidualPSI
    ,B.PititPSI
    ,B.FlwGPM
    ,DENSE_RANK() OVER (ORDER BY A.Insp_Date DESC) AS r

    FROM [dbo].[fofHydrntInspHdr] AS A
        LEFT OUTER JOIN [dbo].[fofHYD2800FlwTstRT] AS B
            ON A.Doc_ID = B.Doc_ID

    WHERE A.Doc_ID > 0
    AND A.Address_Code = 'GEN0021'
)
SELECT  
    Insp_Date AS Last_Insp_Date
    ,Doc_ID
    ,Service_Call_ID
    ,Customer_ID
    ,Address_Code
    ,State
    ,Branch
    ,HydLoc
    ,FlwOutSz
    ,StaticPSI
    ,ResidualPSI
    ,PititPSI
    ,FlwGPM
FROM r
WHERE r = 1;

顺便说一句,我建议不要将 table 与 ABC 等别名,因为它们与 table 并使稍后理解查询更加尴尬。在这种情况下,像 hft 这样的别名将传达一个 table 是 Headers 而另一个是 Flow Tests,同时也减少了字符数。

您的结果中似乎还有一些错误的重复,这表明您的查询没有正确加入和过滤,或者您的数据很乱。