我有一个查询,它检查一个数据在同一个月重复4次或4次以上。我需要从中提取月份名称或编号并将其传递给 string
或者 int
.
MySqlConnection connect = new MySqlConnection(MyConString);
string query = "SELECT agentlogin, COUNT(agentlogin), LAST_DAY(`date`) AS Month FROM pending WHERE agentlogin = @login GROUP BY LAST_DAY(`date`) HAVING COUNT(agentlogin) >= 4";
MySqlCommand comm = new MySqlCommand(query, connect);
comm.Parameters.AddWithValue("@login", Label1.Text);
connect.Open();
MySqlDataReader rdr = comm.ExecuteReader();
while (rdr.Read())
{
lblmsg.Text = "GrpM Alert!";
string getMonth = ?;
}
那我该怎么做呢?
提前谢谢。
3条答案
按热度按时间hs1ihplo1#
阅读
Month
字段并将其格式化为其名称uplii1fm2#
我认为您应该按月份、年份和代理登录进行分组,然后只选择年份和月份。我们可以用
DATE_FORMAT
在这种情况下:请注意,如果一个登录恰好匹配多个月,则这可能返回多个月的值。
之所以要按年份和月份分组,是因为不同的年份可能有相同的月份,在本例中,您可能不希望将它们报告为同一事物。
wbgh16ku3#
最简单的方法是:
更换
LAST_DAY(date)
与MONTH(LAST_DAY(date))
或者像这样的变化MONTH(date)
.在使用
rdr.Read()
您可以通过访问当前行字段MySqlDataReader
对象使用它就像数组/字典:rdr[int i]
,在哪里i
将是一行或多行中字段的索引rdr[string fieldName]
,在哪里fieldName
要从特定行获取的列的名称。