合并数据,但在某些条件下除外

时间:2016-03-29 19:58:57

标签: mysql sql

我有以下结果(临时表):

Product  Side(buy/sell)  TotalQuantity  AverageWeightedPrice  Cost
Prod1    1               100            120                   12,000
Prod1    2               -50            130                   -6,500
Prod2
Prod2

对于多种产品等等。

我将其合并为(使用groupby):

Product  Side(buy/sell)  TotalQuantity  AverageWeightedPrice  Cost
Prod1    1               50             110                   5,500
Prod2

我想要合并的结果,除非是某些条件:

  1. 当第1面和第2面具有相同的数量时。合并数量将为0,我将无法再计算AverageWeightedPrice。
  2. 当合并数量= 0时,另一个条件是当TotalQuantity和Cost为反转值时,即当Quantity为正且Cost为负时(以及Quantity +和Cost - )
  3. 如果是某些条件,我会想要返回未合并的数据。

    我无法同时排除合并数据和未合并数据。

1 个答案:

答案 0 :(得分:0)

这不是SQL真正有用的东西。

完全有可能用纯sql生成这个结果,但解决方案非常复杂,如果你有任何其他选项,你不应该这样做,因为sql不提供任何优化复杂的任务,如此和语法可以很难掌握。维护查询也可能是未来的艰巨任务。

在这种情况下,您应该仅使用sql来获取数据,然后使用执行查询的任何编程语言或应用程序对其进行格式化(合并)。