Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将简单SQL转换为Linq时出现问题_Sql_Linq_Linq To Sql - Fatal编程技术网

将简单SQL转换为Linq时出现问题

将简单SQL转换为Linq时出现问题,sql,linq,linq-to-sql,Sql,Linq,Linq To Sql,我很想把它转换成LINQ: SELECT COUNT(1) AS Registrations, YEAR(Join_date) AS Year, MONTH(Join_date) AS Month FROM tblForumAuthor GROUP BY YEAR(Join_date), MONTH(Join_date) ORDER BY Year, Month 这只是一个简单的报告,但我不知道如何按“选择新”进行分组。我只做了这个可怜的尝试: var q = (from c in

我很想把它转换成LINQ:

SELECT 
 COUNT(1) AS Registrations, 
 YEAR(Join_date) AS Year, 
 MONTH(Join_date) AS Month
FROM tblForumAuthor
GROUP BY YEAR(Join_date), MONTH(Join_date)
ORDER BY Year, Month
这只是一个简单的报告,但我不知道如何按“选择新”进行分组。我只做了这个可怜的尝试:

var q = (from c in db.tblForumAuthors 
         select new {Year = c.Join_date.Year, 
                     Month = c.Join_date.Month, 
                     Registrations = });

它更像是这样-对不起,我没有能力测试它

var results = from r in tblForumAuthorm 
group r by r.Join_date into  
select new { Year =r.Join_Date.Year, Month = r.join_date.month };

它更像是这样-对不起,我没有能力测试它

var results = from r in tblForumAuthorm 
group r by r.Join_date into  
select new { Year =r.Join_Date.Year, Month = r.join_date.month };

迅速到达岗位。。。。但这应该能奏效。请注意如何使用匿名类型按多个字段分组。组的属性可通过分组的键属性获得。但不确定这是否会产生Count1。IIRC将进行计数*


迅速到达岗位。。。。但这应该能奏效。请注意如何使用匿名类型按多个字段分组。组的属性可通过分组的键属性获得。但不确定这是否会产生Count1。IIRC将进行计数*


我打赌有更好的方法,但这里有一个

如果该表有两个定义如下的字段:

tblForumAuthor
==========================
Join_Date    date
Name         nvarchar(50)
var db = new DataClasses1DataContext();

var report =
    from a in db.tblForumAuthors
    group a by new {Year = a.Join_Date.Year, Month = a.Join_Date.Month}
    into g
    select new
               {
                   Year = g.Key.Year,
                   Month = g.Key.Month,
                   Registrations = g.Count()
               };

foreach( var item in report)
{
    Console.WriteLine(item.Year + " " + item.Month + " " + item.Registrations);
}
您可以得到每个月+年组合中加入人数的报告,如下所示:

tblForumAuthor
==========================
Join_Date    date
Name         nvarchar(50)
var db = new DataClasses1DataContext();

var report =
    from a in db.tblForumAuthors
    group a by new {Year = a.Join_Date.Year, Month = a.Join_Date.Month}
    into g
    select new
               {
                   Year = g.Key.Year,
                   Month = g.Key.Month,
                   Registrations = g.Count()
               };

foreach( var item in report)
{
    Console.WriteLine(item.Year + " " + item.Month + " " + item.Registrations);
}

我打赌有更好的方法,但这里有一个

如果该表有两个定义如下的字段:

tblForumAuthor
==========================
Join_Date    date
Name         nvarchar(50)
var db = new DataClasses1DataContext();

var report =
    from a in db.tblForumAuthors
    group a by new {Year = a.Join_Date.Year, Month = a.Join_Date.Month}
    into g
    select new
               {
                   Year = g.Key.Year,
                   Month = g.Key.Month,
                   Registrations = g.Count()
               };

foreach( var item in report)
{
    Console.WriteLine(item.Year + " " + item.Month + " " + item.Registrations);
}
您可以得到每个月+年组合中加入人数的报告,如下所示:

tblForumAuthor
==========================
Join_Date    date
Name         nvarchar(50)
var db = new DataClasses1DataContext();

var report =
    from a in db.tblForumAuthors
    group a by new {Year = a.Join_Date.Year, Month = a.Join_Date.Month}
    into g
    select new
               {
                   Year = g.Key.Year,
                   Month = g.Key.Month,
                   Registrations = g.Count()
               };

foreach( var item in report)
{
    Console.WriteLine(item.Year + " " + item.Month + " " + item.Registrations);
}

仅供参考,键入@Year=c.Join\u date.MonthJust仅供参考,键入@Year=c.Join\u date.MonthThanks!虽然“System.Linq.IGrouping”没有包含“Year”的定义,也没有扩展方法“Year”接受类型为“System.Linq.IGrouping”的第一个参数,但这似乎会产生红色的扭曲线。请参见上面的答案,在第二行g中。Year应该是g.Key.YearSuper谢谢!顺便说一句,您有一个无效的分号,但在其他方面似乎效果很好:D@Tom我没有看到@valipour的答案,但我们的答案几乎相同。我不见了,请输入查询。我已经编辑了答案或者只是参考了其他答案。谢谢!虽然“System.Linq.IGrouping”没有包含“Year”的定义,也没有扩展方法“Year”接受类型为“System.Linq.IGrouping”的第一个参数,但这似乎会产生红色的扭曲线。请参见上面的答案,在第二行g中。Year应该是g.Key.YearSuper谢谢!顺便说一句,您有一个无效的分号,但在其他方面似乎效果很好:D@Tom我没有看到@valipour的答案,但我们的答案几乎相同。我不见了,请输入查询。我已经编辑了答案或者只是参考了其他答案。谢谢!非常感谢,但它不编译“System.Linq.IGrouping”不包含“Year”的定义,并且没有扩展方法“Year”接受类型为“System.Linq.IGrouping”的第一个参数。如其他答案中所述,您缺少键属性。我的查询应该是从我头脑中的C编译器编译出来的……谢谢!非常感谢,但它不编译“System.Linq.IGrouping”不包含“Year”的定义,并且没有扩展方法“Year”接受类型为“System.Linq.IGrouping”的第一个参数。如其他答案中所述,您缺少键属性。我的查询应该是从我头脑中的C编译器编译出来的……这是错误的!你是按整个日期分组的,包括天、小时、秒……这是错误的!您按整个日期分组,包括天、小时、秒,。。。