0

我有一个问题,可能有一个我缺少的简单解决方案。

我有一个交易数据库,我必须使用它来构建一个查询,以计算成员在过去 X 时间段内使用他们的会员卡花费了多少。
当有退货或重新加载卡时,值可能是正数。ArticleID当为 5033时,我计算负值 AND 的总和。

╔═════════╦═══════════════════╦═══════════╦══════════╦═══════════╦════════════╦═════════════════════════════╦══════════════════════════════╦═══════════════╦═══════════════╗
║    ID   ║      MemberNumber ║ ArticleID ║ Quantity ║   Price   ║ TotalPrice ║         PurchaseDate        ║             PurchaseDateTime ║   AssociateID ║ PaymentTypeID ║
╠═════════╬═══════════════════╬═══════════╬══════════╬═══════════╬════════════╬═════════════════════════════╬══════════════════════════════╬═══════════════╬═══════════════╣
║ 1174030 ║             45143 ║        -1 ║        1 ║     74,00 ║   74,00    ║     2012-11-16 00:00:00.000 ║ 40:24.0                      ║            72 ║             1 ║
║ 1174028 ║             45143 ║      5033 ║        1 ║    -74,00 ║  -74,00    ║     2012-11-16 00:00:00.000 ║ 35:33.0                      ║             7 ║            15 ║
╚═════════╩═══════════════════╩═══════════╩══════════╩═══════════╩════════════╩═════════════════════════════╩══════════════════════════════╩═══════════════╩═══════════════╝

在上面的例子中,有人以 74 的价格买了东西,但几分钟后又退回了。ArticleID 在这里没有帮助,因为-1它也用于其他事情。在这种情况下,总数应为 0。

所以,

SELECT SUM(TOTALPRICE) 
FROM   TABLEX 
WHERE  CONDITIONY 

不工作,因为我也过滤掉了其他 ArticleID。

4

0 回答 0