我不确定这个标题是否完全解释了我在这之后的情况,所以让我试着再详细解释......
我需要能够创建一个显示此内容的表...
表:
它需要能够:
如果开始日期都在开始期间之前,并且所有结束日期都在结束期间之后,那么它将是一个简单的单行。但是,在期间中间开始或结束的任何日期都会为该行设置相关日期,并在上一行结束后获得下一个开始日期。
除了这个之外,我使用Linq完成了整个程序,我有一些看起来很有效的东西,但我真的不满意我做的方式。
我的问题是......处理这些日期的优雅方式是什么?我应该使用C#还是SQL Server获得最佳结果?
答案 0 :(得分:1)
不幸的是,我不太明白你的问题,但是,我的建议是:
“将生成/检索数据逻辑向下移动一层”
性能:SQL Server> .Net> LINQ
LINQ的功能非常有限,不易处理。
您是否尝试过使用SQL存储过程来恢复一组数据?
case statement
和min group by
等SQL查询中的函数可以轻松解决您的问题。
在这种情况下,SQL Server会将预期的数据带回C#,然后C#只需要一种方式来呈现这些数据。