2017-05-05 61 views
-2

我有这张表,我需要打印max(balance)Account_NO,但我无法弄清楚如何得到我想要的结果。如何使用帐户ID查找最高(余额)?

+-------------+------------+--------+------+ 
| CUST_ID | ACCOUNT_NO |BALANCE |STATUS| 
+-------------+------------+--------+------+ 
| 6363251425 |  40  | 110000 | A | 
+-------------+------------+--------+------+ 
| 6262521111 |  22  | 51000 | D | 
+-------------+------------+--------+------+ 
| 1111254215 |  19  | 504211 | A | 
+-------------+------------+--------+------+ 
| 6363251425 |  99  | 3620 | A | 
+-------------+------------+--------+------+ 
| 9999999999 |  31  | 1000 | A | 
+-------------+------------+--------+------+ 
| 6363251425 |  47  | 3000 | D | 
+-------------+------------+--------+------+ 
| 9999999999 |  23  | 303333 | D | 
+-------------+------------+--------+------+ 
| 1111254215 |  45  | 85424 | A | 
+-------------+------------+--------+------+ 
| 9999999999 |  49  | 632555 | A | 
+-------------+------------+--------+------+ 

这样的结果会是这样的

+-----------------+------------+ 
| MAX(BALANCE) | ACCOUNT_NO | 
+-----------------+------------+ 
|  632555  |  49  | 
+-----------------+------------+ 

我怎样才能得到这样的结果?

+0

您可以通过余额来订购它们,并只选择第一行 – litelite

+0

您能否显示您尝试过的以及它不工作的位置?还有你使用什么SQL的味道。 – Krypton

+0

@litelite如果有2个或3个不同的帐户号码和相同的余额,该怎么办? –

回答

0

从内部查询中获取最大值,然后将其与原始表加入以获取相应的帐号将会起到作用。如果您有多个帐户,你会在你两个帐户最终输出

试试这个相同的最高值: -

Select a.ACCOUNT_NO, a.BALANCE AS MAX_BALANCE 
from 
YOUR_TABLE_NAME a 
inner join 
(
Select max(BALANCE) as max_balance 
from 
YOUR_TABLE_NAME 
) b 
on a.BALANCE=b.max_balance 

我的输出

ACCOUNT_NO MAX_BALANCE 
    49   632555 

让我知道如果您有任何疑问

+0

谢谢,感谢您的努力 –

+0

@ Eng.Sultan欢迎您。乐于帮助:-) –

1

您可以使用子查询将表加入到自己以获取max(Balance)并使用该值获取Account_No

select t1.Balance, t1.Account_No 
from <table> t1 
inner join 
(
    select max(Balance) as MaxBalance 
    from <table> 
) t2 
    on t1.Balance = t2.MaxBalance 

这是一个demo。通过使用子查询,您可以使用聚合函数max()获取最高的余额,然后将其加回到表中以获取关联的帐户。

+0

谢谢,我感谢你的努力 –