Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.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
Sql server 2005 SQL Server 2005从另一个表字段';s值_Sql Server 2005_Tsql_Aggregate Functions_Calculated Columns - Fatal编程技术网

Sql server 2005 SQL Server 2005从另一个表字段';s值

Sql server 2005 SQL Server 2005从另一个表字段';s值,sql-server-2005,tsql,aggregate-functions,calculated-columns,Sql Server 2005,Tsql,Aggregate Functions,Calculated Columns,很抱歉问了这么长的问题 我想这一次我是个失败者,但机会渺茫 是否可以将表中计算字段的计算作为应用于另一个表中字段的聚合函数的结果 i、 e 你有一张名为“马克杯”的桌子,这张桌子上有一个名为“颜色”的孩子(这让我在英国头疼,但供应商来自美国,你打算怎么做?),而这张桌子上又有一个名为“大小”的孩子。每个表都有一个名为sell的字段 每售出一个特定颜色和尺寸的杯子,售出的尺码增加1 您希望color.sell是SUM size.sell的集合,其中size.colorid=color.colori

很抱歉问了这么长的问题

我想这一次我是个失败者,但机会渺茫

是否可以将表中计算字段的计算作为应用于另一个表中字段的聚合函数的结果

i、 e

你有一张名为“马克杯”的桌子,这张桌子上有一个名为“颜色”的孩子(这让我在英国头疼,但供应商来自美国,你打算怎么做?),而这张桌子上又有一个名为“大小”的孩子。每个表都有一个名为sell的字段

每售出一个特定颜色和尺寸的杯子,售出的尺码增加1

您希望color.sell是SUM size.sell的集合,其中size.colorid=color.colorid

您希望mug.sell是SUM color.sell的集合,其中color.mugid=mug.mugid


有没有办法让马克杯、色卡、色卡自己做出来,还是我得去玩弄触发器?

没有,这是不可能的。计算列只能从同一行上其他字段的值派生。要计算另一个表的聚合,需要创建一个视图

如果应用程序需要显示统计信息,请询问以下问题:

  • 真的需要实时显示吗?若然,原因为何?如果确实有必要这样做,则必须使用触发器来更新表。链接到维基百科关于非规范化的短文。触发器将影响表更新的写入性能,并依赖于触发器处于活动状态
  • 如果仅出于报告目的需要,则可以在视图或报告中进行计算
  • 如果需要支持频繁的即席报告,您可能会进入数据集市和隔夜ETL流程的领域

  • 不能让计算列直接引用其他表,但可以让它引用用户定义的函数。这里有一个链接,指向实现类似这样的解决方案的示例


    我在一家票务代理公司工作,在那里,最后一张票的实时打印号码至关重要,而且票的种类和价格都很重要。任何时候都可能需要按演出、类型和价格对门票进行编号。