我正在尝试创建一个返回 MAX 存款金额的帐户名称的查询。存款可以每天增加,但总和是每月。
2张表:
帐户(身份证,姓名)
存款(Id,日期,存款)
我需要获得当月最大存款金额的账户名称。
例如:
帐户
1 Name1
2 Name2
3 Name3
4 Name4
矿床
1 12 2010-01-01
1 13 2010-01-02
2 30 2010-02-02
3 15 2010-02-02
4 10 2010-02-03
1 30 2010-02-02
结果应为Name1。
到目前为止,我创建了一个查询,该查询返回一个表,其中包含每个帐户每月的总和:
SELECT *
FROM
(
SELECT SUM(Deposits.deposit) as SumMonth , Deposits.account_id as Id
FROM Deposits
GROUP BY Deposits.account_id, MONTH(Deposits.Date)
)
as A INNER JOIN Accounts ON Accounts.id = A.Id
该查询返回:
25 1 1姓名1
30 1 1姓名1
30 2 2名称2
15 3 3姓名3
10 4 4姓名4
任何想法?
答案 0 :(得分:2)
嗯,你自己完成了第一步。 现在接受这个查询,Order By SumMonth DESC。使用TOP 1,您将获得第一名。
像:
SELECT TOP 1 *
FROM
(
SELECT SUM(Deposits.deposit) as SumMonth , Deposits.account_id as Id
FROM Deposits
GROUP BY Deposits.account_id, MONTH(Deposits.Date)
)
AS a INNER JOIN Accounts ON Accounts.id = a.Id
ORDER BY Accounts.SumMonth DESC