2017-05-05 82 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

謝謝,我感謝你的努力 –