2

SQL Serverに必要なクエリがありますが、Entity Frameworkを使用しており、LINQを使用して同じ結果が必要です。SQLは次のとおりです。

select convert(varchar, date_recorded, 12), MAX(outdoor_temp), MAX(wind_speed)
from weatherdata
group by convert(varchar, date_recorded, 12)
order by convert(varchar, date_recorded, 12) DESC ;

これにより、日時列が正しい形式に変換され、適切にグループ化できるようになります。基本的に、SQL日時をyymmdd形式に変換できる必要があります。

どうもありがとう

4

1 に答える 1

0
class Program
    {
        static void Main(string[] args)
        {

            var entries = new List<Entry>()
                {
                    {new Entry { Date = DateTime.UtcNow, Outdoor_Temp = 10, Wind_Speed = 5 }},
                    {new Entry { Date = DateTime.UtcNow, Outdoor_Temp = 5, Wind_Speed = 10}},
                    {new Entry { Date = DateTime.UtcNow.AddDays(-1), Outdoor_Temp = 15, Wind_Speed = 7}}
                };

            (from e in entries 
             group e by e.Date.ToShortDateString() into g
             select 
                new 
                {
                    StringDate = g.Key,
                    MaxWind_Speed = g.Max(entry => entry.Wind_Speed),
                    MaxOutdoor_Temp = g.Max(entry => entry.Outdoor_Temp)
                }
             ).ToList().ForEach(Console.WriteLine);

        }

        public class Entry
        {
            public DateTime Date { get; set; }
            public int Outdoor_Temp { get; set; }
            public int Wind_Speed { get; set; }
            public override string ToString()
            {
                return string.Format("Date : {0}, Outdoor_Temp : {1}, Wind_Speed : {2}", Date, Outdoor_Temp, Wind_Speed);
            }
        }
    }
于 2012-07-25T09:38:47.663 に答える