将计数器添加到sql表

时间:2015-03-30 22:44:36

标签: c# sql asp.net

我想在表中添加一列,其值计算在另一个表上重复的次数。像这样:

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

列数量是我要添加的列,我希望它计算属于其NameID的所有BusinessID:John的NameId为12345,并且NameID有2个与之相关的BusinessID。

我不知道如何做到这一点,我想将这个值添加到一个aspx项目中,也许更容易在c#中创建一个函数来保持数据库不变,只显示客户端上的值

1 个答案:

答案 0 :(得分:2)

通常,您不应存储该值。如果你这样做,你每次更改第二个表时都必须更新它,然后你会遇到问题,比如如果第二个表的更新成功,我该怎么做,但是第一个表的更新失败? (回答:使用交易)。

在运行中计算该值更简单。您可以在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

存储它的唯一原因是,如果该值是一个昂贵的计算(在这种情况下,它不是)。