我有一个类似以下数据的表:
[ID]、[State]、[foo]、[DateCreated]、[DateUpdated]
我越工作,我的SQL代码就变得越丑陋。这说明我可能在做错某些事情。我想要的是每个状态的唯一列表,只要该状态下的foo始终相同(如果该状态下所有记录的foo不相同,则我根本不需要该状态)。此外,我希望将DateCreated和DateUpdated合并,并获取该状态下的最大值。
所以,给定这些数据:
[ID], [State], [foo], [DateCreated], [DateUpdated]
1, MA, data1, 05/29/2012, 06/02/2012
2, MA, data1, 05/29/2012, 06/03/2012
3, RI, data2, 05/29/2012, NULL
4, RI, data3, 05/29/2012, NULL
5, NH, data4, 05/29/2012, NULL
6, NH, data4, 05/29/2012, 06/05/2012
I'd like only these results:
[State], [foo], [LastUpdated]
MA, data1, 06/03/2012
NH, data4, 06/05/2012
什么是获取所需内容的最优雅方式?