我在使用 SELECT 语句时遇到问题,我想选择每个员工 ID 的最大余额。我有一张这样的桌子。
EMPLOYE ID | BALANCES
c50-5050 | 100
c50-5050 | 200
**c50-5050 | 300**
c50-5051 | 200
**c50-5051 | 300**
带星号的表示我想从表中选择什么。
我实际上需要在 VB.net 的数据网格视图中显示它。你知道如何做到这一点吗?
我在使用 SELECT 语句时遇到问题,我想选择每个员工 ID 的最大余额。我有一张这样的桌子。
EMPLOYE ID | BALANCES
c50-5050 | 100
c50-5050 | 200
**c50-5050 | 300**
c50-5051 | 200
**c50-5051 | 300**
带星号的表示我想从表中选择什么。
我实际上需要在 VB.net 的数据网格视图中显示它。你知道如何做到这一点吗?
使用以下查询
select max(Balances),employe_id from table
group by employe_id
您可以ROW_NUMBER
与OVER
-clause 一起使用:
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,您可以使用 aDataAdapter
填充 a 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
试试下面的代码。
SELECT EMPLOYEE_ID,MAX(balances) FROM TABLE_NAME
GROUP BY EMPLOYEE_ID;
查询应该这样max()
group by
做
select max(balance), employe_id
from yourTable
group by employe_id