Sql 获取最小值及其发生日期

Sql 获取最小值及其发生日期,sql,ms-access,Sql,Ms Access,我有三个专栏 DATE|END OF DAY BALANCE|ACCOUNT 我想得到小于零的最小余额,以及发生这种情况的日期 以下查询将返回所有日期: SELECT DISTINCT END_OF_DAY_BALANCE.Date, MIN(END_OF_DAY_BALANCE.[END OF DAY BALANCE]) AS [MinOfEND OF DAY BALANCE], END_OF_DAY_BALANCE.[ACCOUNT] FROM E

我有三个专栏

DATE|END OF DAY BALANCE|ACCOUNT
我想得到小于零的最小余额,以及发生这种情况的日期

以下查询将返回所有日期:

SELECT DISTINCT
       END_OF_DAY_BALANCE.Date,
       MIN(END_OF_DAY_BALANCE.[END OF DAY BALANCE]) AS [MinOfEND OF DAY BALANCE],
       END_OF_DAY_BALANCE.[ACCOUNT]
FROM END_OF_DAY_BALANCE
GROUP BY END_OF_DAY_BALANCE.Date,
         END_OF_DAY_BALANCE.[ACCOUNT]
HAVING(((MIN(END_OF_DAY_BALANCE.[END OF DAY BALANCE])) < 0));

实现这一目标的方法有很多-

下面是一种可能的方法,在子查询上使用一个内部联接来检索每个帐户的最小余额值,这样该联接就可以从主表中生成相应的记录,主表的帐户和余额字段与子查询计算的字段相匹配

选择t* 从…起 结束\u天\u平衡t内部连接 选择美元账户,分钟[日终余额]作为mb 从一天结束时开始 其中u.[日终余额]<0 按美国账户分组 v on t、 账户=v.account,t.[日终余额]=v.mb 或者,您可以通过以下方式使用相关子查询:

选择t* 从第天结束时起 哪里 t、 [日终余额]= 选择分钟。[日终余额] 从一天结束时开始 其中u.account=t.account和u.[日终余额]<0
在这里,子查询针对每个记录进行评估,只有那些持有最低余额的记录验证where子句,并因此针对每个帐户返回。

有许多方法可以实现这一点-

下面是一种可能的方法,在子查询上使用一个内部联接来检索每个帐户的最小余额值,这样该联接就可以从主表中生成相应的记录,主表的帐户和余额字段与子查询计算的字段相匹配

选择t* 从…起 结束\u天\u平衡t内部连接 选择美元账户,分钟[日终余额]作为mb 从一天结束时开始 其中u.[日终余额]<0 按美国账户分组 v on t、 账户=v.account,t.[日终余额]=v.mb 或者,您可以通过以下方式使用相关子查询:

选择t* 从第天结束时起 哪里 t、 [日终余额]= 选择分钟。[日终余额] 从一天结束时开始 其中u.account=t.account和u.[日终余额]<0
在这里,子查询针对每个记录进行计算,只有那些持有最低余额的记录验证where子句,并因此针对每个帐户返回。

确保日期字段不包含时间信息。如果是,则按轮[日期]分组。将日期括在括号内,这是保留字谢谢,但这不起作用。我要找的是每个帐户的最低余额,然后是余额达到此最低值的日期或日期,可能与“按日期删除组”重复。仅按帐户分组。然后MIN函数可以返回该帐户的最小值。请确保日期字段不包含时间信息。如果是,则按轮[日期]分组。将日期括在括号内,这是保留字谢谢,但这不起作用。我要找的是每个帐户的最低余额,然后是余额达到此最低值的日期或日期,可能与“按日期删除组”重复。仅按帐户分组。然后MIN函数可以返回该帐户的最小值。