0

指定された基準でレコードの集計を取得する次のクエリがあります。以下は、テーブル内の 2 つのレコードとクエリの結果を示しています。EntryDate私が望むのは、列に基づいて最新のオカレンスを取得することです。

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  

ありがとう、ブラッド

4

3 に答える 3

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 とその最新の日付のリストが表示されます。次に、必要な残りのすべてのデータと結合できます。最終結果は、最新の情報を含む各 DCMNumber を返します。

それがあなたが探しているものではない場合は、さらに詳細を追加してください。そうすれば、あなたが求めているものをよりよく理解できます.

于 2012-08-14T14:41:39.297 に答える
1

これを試して

Select Top 1 col1 From Table Order by MyDate DESC
于 2012-08-13T13:16:39.547 に答える
1

MySQL:

SELECT * FROM table ORDER BY EntryDate DESC LIMIT 1

MSSQL:

SELECT TOP 1 * FROM ORDER BY EntryDate DESC
于 2012-08-13T13:14:48.397 に答える