对此我有一个非常具体的问题。我知道我可以使用SUM
然而,为了对两列的值求和,除了运行基本查询之外,还需要处理一些其他要求。
表中需要存在第三列,其中将包含两列的值。
每当创建行或更新其他列中的两个值中的任何一个时,都需要更新第三列。
是否可以通过在列中设置默认值来完成此操作,并在其他两列中的任何一列更新时使用某种引用进行更新?这将是最简单的解决方案。或者,我是否需要一个触发器/存储过程组合,每当创建一行或更新这两列之一时就会触发并运行?如果是这样,我将如何实施?
这是表的创建:
CREATE TABLE [dbo].[haems_callLog]
(
[month] [int] NOT NULL,
[year] [int] NOT NULL,
[total] [int] NOT NULL CONSTRAINT [DF_haems_callLog_total] DEFAULT ((0)),
[station] [nvarchar](4) NOT NULL CONSTRAINT [DF_haems_callLog_station] DEFAULT (N'-'),
[station1_Total] [int] NOT NULL CONSTRAINT [DF_haems_callLog_station1_total] DEFAULT ((0)),
[station2_Total] [int] NOT NULL CONSTRAINT [DF_haems_callLog_station2_total] DEFAULT ((0))
) ON [PRIMARY]
总计字段默认为“0”。创建记录时,仅包含月份、年份、电台以及其中一个station1_Total
or station2_Total
列将被输入数据。然后,总计列需要取以下任一值station1_Total
or station2_Total
除了“0”默认值之外,另一列还用求和值填充。
更新记录时,这两列中的任何一列都可能发生更改,然后需要将其反映在总计列的求和值中。
预先感谢您的帮助和指导!
只需定义一个计算列像这样:
ALTER TABLE [dbo].[haems_callLog]
ADD GrandTotal AS [station1_Total] + [station2_Total] PERSISTED
这会添加一个新列,它将始终反映其他两列的总和 - 无论这些列包含什么。如果两个基础列中的任何一个被更新,这个新的计算列总是会被更新。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)