Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 向sql表添加计数器_C#_Sql_Asp.net - Fatal编程技术网

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。它的行为类似于功能有限的表,具体取决于它的配置方式。