如何显示在sql数据库中出现3次以上且不重复的列数据
本文关键字:3次 数据 显示 何显示 数据库 sql | 更新日期: 2023-09-27 18:25:30
我有一个名为memberreport的表,成员可以在其中发送多个报告。然而,我正试图对那些提交了3份以上报告的成员进行检查。
每个成员帐户都有一个唯一的属性,即memberID。所有成员报告都需要一个成员帐户(包含memberID)才能进行报告。
正如你可以从下面的SQL代码中看到的那样
SqlConnection con = new SqlConnection("Data Source = localhost; Initial Catalog = MajorProject; Integrated Security= SSPI");
con.Open();
DataSet ds = new DataSet();
SqlDataAdapter da = new SqlDataAdapter("Select distinct memberID from MemberReport where memberID >= 3", con);
da.Fill(ds);
ddlNRIC.DataSource = ds;
ddlNRIC.DataTextField = "memberID";
ddlNRIC.DataValueField = "memberID";
ddlNRIC.DataBind();
con.Close();
我正在尝试显示提交了3个以上报告的memberID。然而,我从Visual Studio 收到了这个错误
Conversion failed when converting the varchar value 'Q12345T' to data type int.
数字&字母"Q12345T"是成员ID。我的属性是varchar。但我插入了这行代码,它是
memberID >= 3
应该能够显示出提交了3份以上无效报告的memberID。我试图在下拉列表中显示提交了3个以上报告的memberID。我添加了一个distinct,它应该能够防止重复的memberID。
从MemberReport中选择不同的memberID,其中memberID>=3
其中您的成员id是sql server中的varchar(xx)是错误的
对memberID使用group by
子句,条件应为计数>=3,而不是memberID。
select memberID from MemberReport
group by memberID
having (count(memberID) >= 3)
where
检查列的值,而不是该列在表中出现的次数。对于这样的任务,您需要having
子句:
select memberID from MemberReport
group by memberID
having (count(memberID) >= 3)