回答

收藏

SQL-如何在特定列中选择具有最大值的数据行?

技术问答 技术问答 165 人阅读 | 0 人回复 | 2023-09-12

在准备创建视图的过程中进行测试SQL在查询过程中,我首先想到了这个公式
3 ~' p! Y0 b+ N% X, y6 ^1 vselect a.SchID as [SchID], b.CourseID as [CourseID],a.EmpNo as [EmpNo],   b.ActStartDate as [ActStartDate],a.ValidTo as [ValidTo]from [SQL3].[dbo].[Training_Record] a inner join(select z.schid,z.CourseID as [CourseID],max(z.ActStartDate) as [ActStartDate]from [SQL3].[dbo].[Training_Schedule] z group by z.SchID,z.CourseID)as b    on a.SchID = b.SchID-- to test data contentwhere EmpNo = '141281' and CourseID = '22'结果给了我2行:1 V+ R  F. P+ n7 h  l; ?0 t: H% [
| SchID | CourseID | EmpNo |       ActStartDate      |         ValidTo         |--------------------------------------------------------------------------------| 5000  |    222                                                                                                                       2222| 14000 | 2018-06-11 00:00:00.000 | 2018-12-10 00:00:00.000 || 5022  |    222                                                                                                                       2222| 14000 | 2018-08-08 00:00:00.000 | 2019-02-07 00:00:00.000 |我想要第二行,它ActStartDate最大,成为唯一出现的行。1 ~# x' }2 _/ K9 r1 L  k1 G$ {
| SchID | CourseID | EmpNo |       ActStartDate      |         ValidTo         |--------------------------------------------------------------------------------| 5022  |    22    | 14000 | 2018-08-08 00:00:00.000 | 2019-02-07 00:00:00.000 |但是由于SchID不同的编号最终注册为单独的项目。SchID如何告诉这两个表之间唯一的共享列?SQL忽略SchID读取并只显示第二行?( ]7 w/ M# `3 M8 E2 l; r. U/ [7 v
                                                               
, |: H+ F" K* a* M3 x0 V/ s5 }) {    解决方案:
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则