2012-08-13 101 views
0

我有以下查詢獲取具有給定條件記錄的計數。以下顯示了表中的兩條記錄和查詢結果。我想要的是根據EntryDate列獲得最新的事件。sql找到最近的記錄

0 A 2012-08-09 00:00:00.000 N0206527 N0168639 NULL 09 420202 LTD False 
0 A 2012-08-08 00:00:00.000 N0206527 N0168639 NULL 09 420202 LTD False 

DCMNumber CustomerDivision CustomerSerial Product PriorNonDenied  
N0064819 09    420202  LTD  2 


SET @firstDayOfCurrentMonth = DATEADD(m,DATEDIFF(M,0,GETDATE()),0) 
SELECT DCMNumber, CustomerDivision, CustomerSerial, Product, COUNT(*) AS PriorNonDenied 
          FROM cauAssignedClaim 
          WHERE RecordType = 'A' AND 
            EscFromSTD = '0' AND 
            ([Status] <> 'DE' OR 
            [Status] IS NULL) AND 
            CONVERT(VARCHAR(10), EntryDate, 110) BETWEEN 
             CASE WHEN Product = 'LTD' THEN CONVERT(VARCHAR(10), @firstDayOfCurrentMonth, 110)  
             ELSE CONVERT(VARCHAR(10), DATEADD(Day, -7, GETDATE()-1), 110) 
             END 
             AND CONVERT(VARCHAR(10), GETDATE()-1, 110) 
          GROUP BY [Status], 
             DCMNumber, 
             CustomerDivision, 
             CustomerSerial, 
             Product 

感謝, 布拉德

+1

您正在使用哪種RDBMS? – Yuck 2012-08-13 13:16:55

+0

似乎它是SQL Server – codingbiz 2012-08-13 13:18:59

+0

看起來像MSSQL – 2012-08-13 13:19:26

回答

1

的MySQL:

SELECT * FROM table ORDER BY EntryDate DESC LIMIT 1 

MSSQL:

SELECT TOP 1 * FROM ORDER BY EntryDate DESC 
+0

只需注意,這僅適用於MySQL。 'LIMIT'不是標準的SQL。 – Yuck 2012-08-13 13:17:15

+0

已更新,以顯示兩者的示例。 – 2012-08-13 13:18:33

+0

使用TOP 1僅在行上返回。我有幾個記錄,其中DCMNumber被分配了不同的索賠號碼。我想要得到的是所有索賠的最新DCMNumber。所以最後我會列出一份DCMN號碼的最新聲明。原因是我不想在同一個索賠號碼被分配多次的情況下包含多個記錄。 – user1331734 2012-08-13 15:26:53

1

試試這個

Select Top 1 col1 From Table Order by MyDate DESC 
+0

與TOP 1我只收回一條記錄。在表中,我有幾個索賠分配給特定的DCMN號碼。我需要的是獲得特定DCMNUmber的每個聲明的最後一個實例。 – user1331734 2012-08-13 15:29:00

4

我想你想是這樣的

SELECT a.EntryDate, a.DCMNumber, CustomerDivision, CustomerSerial, Product, WhateverElse, etc 
FROM cauAssignedClaim b INNER JOIN 

(SELECT MAX(DCMNumber) DCMNumber, MAX(EntryDate) EntryDate 
FROM cauAssignedClaim 
GROUP BY DCMNumber) a 

ON (a.DCMNumber = b.DCMNumber AND a.EntryDate = b.EntryDate) 

這會給你所有的獨特DCMNumbers和他們的最新日期的列表。然後你可以加入你需要的所有其他數據。最終結果將返回每個DCMN與最新的信息。

如果這不是您要找的內容,請添加更多詳細信息,以便我們可以更好地瞭解您的情況。