我在使用SELECT语句时遇到问题我想选择每个员工ID的最大余额。我有一张这样的桌子。
EMPLOYE ID | BALANCES
c50-5050 | 100
c50-5050 | 200
**c50-5050 | 300**
c50-5051 | 200
**c50-5051 | 300**
带星号的那个表示我想从表中选择的内容。
我实际上需要在VB.net的数据网格视图中显示它。你对如何做到了吗?
答案 0 :(得分:2)
您可以ROW_NUMBER
使用OVER
- 子句:
WITH X AS
(
SELECT [EMPLOYE ID], BALANCES,
RN = ROW_NUMBER() OVER (PARTITION BY [EMPLOYE ID] ORDER BY BALANCES DESC)
FROM dbo.Table
)
SELECT EMPLOYE ID, BALANCES
FROM X
WHERE RN = 1
我实际上需要在VB.net的数据网格视图中显示它。你有没有 关于如何做到这一点的想法?
使用ADO.NET,您可以使用DataAdapter
填充DataTable
:
Dim table = New DataTable()
Dim sql = "see sql above"
Using con = New SqlConnection(yourConnectionString)
Using da = New SqlDataAdapter(sql, con)
da.Fill(table)
End Using
End Using
DataGridView1.DataSource = table
答案 1 :(得分:2)
使用以下查询
select max(Balances),employe_id from table
group by employe_id
答案 2 :(得分:1)
请尝试以下代码。
SELECT EMPLOYEE_ID,MAX(balances) FROM TABLE_NAME
GROUP BY EMPLOYEE_ID;
答案 3 :(得分:1)
max()
group by
查询应该这样做
select max(balance), employe_id
from yourTable
group by employe_id