sql-server-2005 - SQL Server 2005 计算列结果来自另一个表字段值的聚合

标签 sql-server-2005 tsql aggregate-functions calculated-columns

抱歉,问题标题很长。

我想我在这个问题上失败了,但机会不大。

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

IE。

你有一个叫做“杯子”的 table ,它有一个叫做“颜色”的 child (这让我在英国很头疼,但供应商来自美国,你打算怎么做?),反过来,这个 child 有一个叫做“颜色”的 child 尺寸'。每个表都有一个称为已售出的字段。

每售出一个特定颜色和尺寸的杯子,size.sold 就会增加 1。

您希望 color.sold 是 SUM size.sold WHERE size.colorid = color.colorid 的聚合

您希望 mug.sold 是 SUM color.sold WHERE color.mugid = mug.mugid 的聚合

有没有办法让 mug.sold 和 color.sold 自己解决,或者我将不得不用触发器来捣乱?

最佳答案

您不能让计算列直接引用不同的表,但可以让它引用用户定义的函数。这是实现此类解决方案的示例的链接。

http://www.sqlservercentral.com/articles/User-Defined+functions/complexcomputedcolumns/2397/

关于sql-server-2005 - SQL Server 2005 计算列结果来自另一个表字段值的聚合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/166518/

相关文章:

带有日期计数器的sql while循环

SQL View - 如果为空,则添加默认值?

sql - 无法在子查询的 where 子句中引用聚合函数的别名

sql - 如何从sqlite查询中获取顶部组?

sql-server - SQL Server 2005 使用表达式进行 Order BY

mysql - SQL 中的泛化和分类

sql - 如何在 SQL Server 2005 中制作尴尬的 sql 表枢轴?

sql - 如何转换选择查询

c# - SQL 中的 "Dynamic"表?

sql - Oracle 运行总计