C# 向sql表添加计数器
我想向一个表中添加一列,该列的值计算它在另一个表中重复的次数。大概是这样的:C# 向sql表添加计数器,c#,sql,asp.net,C#,Sql,Asp.net,我想向一个表中添加一列,该列的值计算它在另一个表中重复的次数。大概是这样的: Name NameID Quantity | NameID Franchisee Business BusinessID John 12345 2 | 12345 CA Laundry 45678 Smith 45684 1 | 12345 CA Bakery 4567
Name NameID Quantity | NameID Franchisee Business BusinessID
John 12345 2 | 12345 CA Laundry 45678
Smith 45684 1 | 12345 CA Bakery 45679
| 45684 NY Shampoo 45680
列Quantity是我要添加的,我希望它统计属于他的NameID的所有BusinessID:John的NameID为12345,该NameID有两个BusinessID与之关联
我不知道该怎么做,我想把这个值添加到一个aspx项目中,也许在c#中创建一个函数会更容易,使数据库保持原样,只在客户端上显示值。一般来说,您不应该存储该值。如果这样做,则每次更改第二个表时都必须更新它,然后就会出现问题,例如如果第二个表的更新成功,但第一个表的更新失败,我该怎么办?(答:使用事务) 动态计算该值要简单得多。您可以在SQL中执行此操作:
SELECT
t1.Name, t1.NameID, COUNT(*) AS Quantity
FROM
Table1 t1
INNER JOIN Table2 t2 ON t1.NameID = t2.NameID
GROUP BY
t1.Name, t1.NameID
存储它的唯一原因是如果该值是一个昂贵的计算(在本例中,它不是)。将其保存在数据库内部。有关方法,请参阅。提示:使用适当的软件(MySQL、Oracle、DB2等)和版本标记数据库问题很有帮助,例如
sql-server-2014
。语法和功能的差异通常会影响答案。如果确实需要,您可以在Microsoft Sql Server中将此查询作为“视图”公开,前提是您使用的是DBMS。它的行为类似于功能有限的表,具体取决于它的配置方式。