【发布时间】:2014-09-25 01:13:20
【问题描述】:
我一直在努力想出正确的逻辑(SQL Server 2012)来实现我认为相当常规的事情,但我无法在任何地方找到任何这样的例子。基本上,我在一个表中有 3 列:产品、标志、值。一个产品可以在表中多次列出,但只有一次带有唯一标志(即 product1 可以有 flag1 或 flag2 具有不同/相同但永远不会有 2 条记录具有 product1 和 flag1 以及不同/相同的值) .
标志代表一个预定义的值 (1,2,3,4),该字段背后的目的是能够根据标志的值分配一个唯一的数学方程。最终结果将产生一个产品、唯一标志和基于数学方程输出的新累积总数。例如,假设 product1 被列出 4 次,其标志值为 flag1、flag2、flag3、flag4(见下文):
Product-----Flag-----Value
Product1----Flag1----1.00
Product1----Flag2----3.00
Product1----Flag3----5.00
Product1----Flag4----7.00
Product-----Flag-----Value
Product1----Flag1----1.00 (flag1 value)
Product1----Flag2----4.00 (flag1+flag2 value)
Product1----Flag3----6.00 (flag1+flag3 value)
Product1----Flag4----10.00 (flag2+flag4 value)
Flag1 仅定义为添加 flag1。 Flag2 定义为添加 flag1 和 flag2。标志 3 定义为添加标志 1 和标志 3。标志 4 定义为添加标志 2 和标志 4。新输出将是 product1 列出四次,其标志值为 flag1、flag2、flag3、flag4,但新值为 flag1、flag1_flag2、flag1+flag3、flag2+flag4。
我尝试通过 case 语句应用逻辑,但我不知道如何遍历每个条件的所有产品,我尝试使用运行总计解决方案,但我不确定如何合并将条件标记到其中,因此它仅在这些条件为真时执行运行总计。任何能帮助我走上正确道路的帮助和/或文章将不胜感激。
【问题讨论】:
-
基于标志的“唯一数学方程”是一直固定的,还是存在一些差异?不同的产品会有不同的标志计算吗?
-
但是 Product1 没有被列出 4 次
-
所有产品的标志方程都是固定的,因此所有产品将共享相同的数学方程。更正了产品名称。谢谢!
标签: tsql sql-server-2012