SQL Server:按相关列选择具有 MAX(A 列)、MAX(B 列)、DISTINCT 的行
场景:
表 A
MasterID、添加日期、添加者、更新日期、更新者、
1, 2010 年 1 月 1 日,“弗雷德”,空,空
2、2010 年 1 月 2 日,《巴尼》、《巴尼先生》石板”,2010 年 1 月 7 日
3, 2010 年 1 月 3 日,“Noname”,null,null
表B
MasterID、添加日期、添加者、更新日期、更新者、
1, 2010年1月3日,“威尔玛”,“伟大的卡祖笛”,2010年1月5日
2、2010年1月4日、“贝蒂”、“迪诺”、2010年1月4日
表C
MasterID、添加日期、添加者、更新日期、更新者、
1, 1/5/2010, '卵石', null, null
2, 2010 年 1 月 6 日,“BamBam”,空,空
表D
MasterID、添加日期、添加者、更新日期、更新者、
1, 2010 年 1 月 2 日,“Noname”,null,null
3, 1/4/2010, '威尔玛', null, null
当表 A、B、C 和 D 进行联合时,我需要返回每个不同记录的最大添加日期和相应用户,以及最大更新日期和相应用户,即:
1, 2010年1月5日,“卵石”,“伟大的卡祖笛”,2010年1月5日
2, 1/6/2010, 'BamBam', 'Mr.石板”,2010 年 1 月 7 日
3, 1/4/2010, '威尔玛', null, null
我知道如何用每行一个日期/用户来执行此操作,但对于两个日期/用户则超出了我的能力。
DBMS 是 SQL Server 2005。首选 T-SQL 解决方案。
预先感谢,
戴夫
Scenario:
Table A
MasterID, Added Date, Added By, Updated Date, Updated By,
1, 1/1/2010, 'Fred', null, null
2, 1/2/2010, 'Barney', 'Mr. Slate', 1/7/2010
3, 1/3/2010, 'Noname', null, null
Table B
MasterID, Added Date, Added By, Updated Date, Updated By,
1, 1/3/2010, 'Wilma', 'The Great Kazoo', 1/5/2010
2, 1/4/2010, 'Betty', 'Dino', 1/4/2010
Table C
MasterID, Added Date, Added By, Updated Date, Updated By,
1, 1/5/2010, 'Pebbles', null, null
2, 1/6/2010, 'BamBam', null, null
Table D
MasterID, Added Date, Added By, Updated Date, Updated By,
1, 1/2/2010, 'Noname', null, null
3, 1/4/2010, 'Wilma', null, null
I need to return the max added date and corresponding user, and max updated date and corresponding user for each distinct record when tables A,B,C&D are UNION'ed, i.e.:
1, 1/5/2010, 'Pebbles', 'The Great Kazoo', 1/5/2010
2, 1/6/2010, 'BamBam', 'Mr. Slate', 1/7/2010
3, 1/4/2010, 'Wilma', null, null
I know how to do this with one date/user per row, but with two is beyond me.
DBMS is SQL Server 2005. T-SQL solution preferred.
Thanks in advance,
Dave
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
按照每行一个日期/用户的方式进行操作,并对修改日期重复此操作,然后在 MasterID 上将两个结果表连接在一起。
Do as you would with one date/user per row, and repeat for modified date, then join the two resulting tables together on the MasterID.