2017-04-12 47 views
0

請幫助我構建一個SQL查詢,以至少根據日期和名稱在字段AMT中查找最小值AMT: 我想填充ACCESS中的字段[Min amt]這是基於最少的日期對名稱的表。例如名稱的具有至少日期17年4月9日和AMT是7000:基於條件的最小(字段)MS訪問查詢

Name Date   Amt  Min Date  Min Amt 
A  4/12/2017 $1,000.00 4/9/2017  $7,000.00 
A  4/11/2017 $2,000.00 4/9/2017  $7,000.00 
B  4/10/2017 $3,000.00 4/10/2017 $3,000.00 
B  4/11/2017 $4,000.00 4/10/2017 $3,000.00 
C  4/10/2017 $5,000.00 4/10/2017 $5,000.00 
C  4/11/2017 $6,000.00 4/10/2017 $5,000.00 
A  4/9/2017  $7,000.00 4/9/2017  $7,000.00 
+1

我建議你_not_做到這一點?只要新數據進入,「Min Date」和「Min Amt」列可能會在某些日期失效。 –

回答

1

我建議你實際創建的計算列。一旦新數據進入,它們就很容易失效,使它們對你無用。

相反,我會建議只是創造出每個名稱最早數額的報告:

SELECT t1.Name, t1.Date, t1.Amt, 
     t2.[Min Date], 
     t2.[Min Amt] 
FROM yourTable t1 
INNER JOIN 
(
    SELECT t1.Name, t1.Date AS [Min Date], t1.Amt AS [Min Amt] 
    FROM yourTable t1 
    INNER JOIN 
    (
     SELECT Name, MIN(Date) AS min_date 
     FROM yourTable 
     GROUP BY Name 
    ) t2 
     ON t1.Name = t2.Name AND 
      t1.Date = t2.min_date 
) t2 
    ON t1.Name = t2.Name