首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用于检查表中某列数据的C#代码已存在于其他表中

用于检查表中某列数据的C#代码已存在于其他表中
EN

Stack Overflow用户
提问于 2020-06-28 19:53:37
回答 2查看 73关注 0票数 1

我想检查表A中的一条记录,以检查它是否存在于表B中。我计算表B中输入了多少数据。

示例:

代码语言:javascript
运行
复制
   A                       B
------------------------------
John                     John
Joon                     Jorge
Jorge                    Joon
Elizabet                 Elizabet
Suzan                    Suzan
                         Elizabet
                         Joon
                         Suzan
                         John
                         Elizabet

答案应该是这样的:

代码语言:javascript
运行
复制
John = 2
Joon = 2
jorge = 1
Elizabet = 3
Suzan = 2

我尝试过的:

代码语言:javascript
运行
复制
using (ImportInvoiceMasterForm.ApplicationSqlConnection2 = new SqlConnection(MainForm.ApplicationDataBase))
            {
                ImportInvoiceMasterForm.ApplicationSqlConnection2.Open();
                using (ImportInvoiceMasterForm.ApplicationSqlCommand1 = new SqlCommand("SELECT * FROM TBL_Stock_Item", ImportInvoiceMasterForm.ApplicationSqlConnection2))
                using (ImportInvoiceMasterForm.ApplicationSqlDataReader1 = ImportInvoiceMasterForm.ApplicationSqlCommand1.ExecuteReader())
                {
                    while (ImportInvoiceMasterForm.ApplicationSqlDataReader1.Read())
                    {
                        ImportInvoiceMasterForm.GetImportQuantity = 0;
                        #region Get Import Quantity
                        using (ImportInvoiceMasterForm.ApplicationSqlConnection1 = new SqlConnection(MainForm.ApplicationDataBase))
                        {
                            ImportInvoiceMasterForm.ApplicationSqlConnection1.Open();
                            using (ImportInvoiceMasterForm.ApplicationSqlCommand = new SqlCommand("SELECT * FROM TBL_Import_Items WHERE ImportItemName='" + ImportInvoiceMasterForm.ApplicationSqlDataReader1.GetString(1) + "'", ImportInvoiceMasterForm.ApplicationSqlConnection1))
                            using (ImportInvoiceMasterForm.ApplicationSqlDataReader = ImportInvoiceMasterForm.ApplicationSqlCommand.ExecuteReader())
                            {
                                while (ImportInvoiceMasterForm.ApplicationSqlDataReader.Read())
                                {
                                    GetImportQuantity += double.Parse(ImportInvoiceMasterForm.ApplicationSqlDataReader.GetValue(4).ToString());
                                }
                            }
                        }
                        #endregion Get Import Quantity
                    }
                }
            }
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-06-28 19:59:09

这看起来像是一个聚合。一种方法是join/group by

代码语言:javascript
运行
复制
select a.name, count(b.name)
from a left join
     b
     on a.name = b.name
group by a.name;

left join允许对0进行计数。

如果名称可以在a中重复,则相关子查询是更好的解决方案(假设您希望在a中保留重复项):

代码语言:javascript
运行
复制
select a.*, (select count(*) from b where b.name = a.name) as cnt
from a;
票数 2
EN

Stack Overflow用户

发布于 2020-06-28 20:05:00

代码语言:javascript
运行
复制
Select A.name, Count(B.name) As Num
FROM A join B 
Where B.name=A.name
Group By A.name

这将为您提供所需的解决方案

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62622174

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档