*对不起,标题不能太长,所以我不得不削减它。 嗨,我想从我的数据库表中得到总持续时间 在asp.net c#中使用SQL Query,dateID为1,日期时间为2016年。我尝试使用下面的代码,但它不起作用。它说'附加信息:列'RecordsDate.StartDateTime'在HAVING子句中无效,因为它不包含在聚合函数或GROUP BY子句中。谁能告诉我我的SQL查询有什么问题?非常感谢:)
float totalDuration = 0f;
string sQuery = "SELECT sum(Duration) AS TotalDuration FROM RecordsDate WHERE DateID='1' HAVING DATEPART(yyyy, StartDateTime) = '2016'";
SqlConnection conn = new SqlConnection(_connStr);
SqlCommand cmd = new SqlCommand(sQuery, conn);
conn.Open();
SqlDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
totalDuration = float.Parse(dr["TotalDuration"].ToString());
}
conn.Close();
dr.Close();
答案 0 :(得分:-1)
使用表中的某些列名提供group by: 从记录日期中选择总和(持续时间)作为总持续时间 其中dateid =' 1'有datepart(yyyy,startdatetime)=' 2016' 通过...分组 ?