如何显示在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。

如何显示在sql数据库中出现3次以上且不重复的列数据

从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)