比较表c#mssqlserver中两列的结果

时间:2015-03-04 20:39:51

标签: c# select

我正在使用VisualStudio 2013 Premium C#和MSSQLServer

我想通过EndDate订购

然后(带循环)我想知道我的表中下一列的StartDate是否低于当前列的EndDate

StartDate和EndDate是Seconds

实施例

StartDate

1 
2 
3 
1 
6 
7 
7 

EndDate

3 
3 
4 
5 
7 
8 
10 

这里程序计算到EndDate 5 因为6 <= 5 StartDate&lt; = EndDate。

如果我计算我的结果:

4

3

然后我想找出列表的最大值 在这种情况下4

背景:我想知道在哪一秒我得到最大呼叫数。

任何人都可以帮我解决问题吗?

2 个答案:

答案 0 :(得分:0)

我没有得到你的解释,但回答你的问题

  

我想知道在哪一秒我得到最大呼叫次数。

void Main()
{   
    var startDate = new [] { 1, 2, 3, 1, 6, 7, 7 };
    var endDate = new [] { 3, 3, 4, 5, 7, 8, 10 };
    var maxCallsCount = 0;
    var secondAtMaxCallsCount = 0;

    foreach (var second in Enumerable.Range(startDate.Min(), 
                                            endDate.Max() - startDate.Min() + 1))
    {
        var callsCount = 0;

        for (var i = 0; i < startDate.Length; ++i)
        {
            if (startDate[i] <= second && second <= endDate[i])
            {
                ++callsCount;
            }
        }

        if (callsCount > maxCallsCount)
        {
            maxCallsCount = callsCount;
            secondAtMaxCallsCount = second;
        }
    }

    Console.WriteLine("Max calls count is " + maxCallsCount + 
                      " at " + secondAtMaxCallsCount + " second");
}

答案 1 :(得分:0)

我想我用List<int?>解决了参数的问题 但现在我不确定如何实现Range和Loop。 以下是对的吗?

   foreach (var second in Enumerable.Range((int)beginningDate.FirstOrDefault(),
                                            (int)endDate.Last() - (int)beginningDate.FirstOrDefault() +1))
            {
                var callsCount = 0;

                for (var i = 0; i < beginningDate.Last(); ++i)
                {
                    if (beginningDate[i] <= second && second <= endDate[i])
                    {
                        ++callsCount;
                    }
                }

                if (callsCount > maxCallsCount)
                {
                    maxCallsCount = callsCount;
                }
            }

我总是得到一个System.ArgumentOutOfRangeException-Exception。 指数超出范围。