Reputation: 5001
I am trying to convert this SQL to linq syntax, but I'm having some difficulties at that.
SELECT trans_date, count(*) FROM table1
GROUP BY trans_date
Result
01-01-2001 | 12
03-01-2001 | 45
var q = from a in table1
let dt = q.trans_date.value
group q by new {y = dt.Year.ToString(), m = dt.Month.ToString(), d = dt.Day.toString()}
into g
select new { int NumOf = g.Count(), DateTime TransDate = DateTime.Parse(g.Key.y + g.key.m + g.Key.d)}
This last "version" with the DateTime.Parse gives me a runtime error.
How to handle that the q.trans_date is a nullable DateTime and getting my resultset??
Upvotes: 1
Views: 1263
Reputation: 1501123
For one thing, you're not getting a runtime error with that code - you'll be getting a compile-time error as your code isn't valid C#.
Try this:
var q = from a in table1
group a by a.trans_date.value.Date into g
select new {
Count = g.Count(),
TransDate = g.Key
};
Upvotes: 3