我想在表中添加一列,其值计算在另一个表上重复的次数。像这样:
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#中创建一个函数来保持数据库不变,只显示客户端上的值
答案 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
存储它的唯一原因是,如果该值是一个昂贵的计算(在这种情况下,它不是)。