我有一个设备,审计所有库存交易到一个t数据库.我需要一个select语句,它将生成一个用户在库存上执行的加减量(我们不关心涉及哪些部分,只是总的事务处理)。这张桌子看起来是:
userName partNum LastOHQ NewOHQ
_____________________________________
joeShmoe 667-5 52 60
lazyP 664-2 88 44
joeShmoe 89-66 78 22
jesseJames 100-1 19 99现在,考虑到基本数学的使用,我能够确定一个事务是被添加到库存中,还是使用NewOHQ - LastOHQ =?删除,如果这个数字是正的,我知道它是被添加的,如果是负的,它就被删除了。
如何创建结果集,如:
userName added subtracted
______________________________
joeShmoe 8 56
lazyP 0 44
jesseJames 80 0~SQL新手。
发布于 2014-01-23 15:02:12
您需要使用一些CASE表达式来创建计算的列。
SELECT userName,
SUM(CASE WHEN NewOHQ - LastOHQ > 0 THEN NewOHQ - LastOHQ
ELSE 0 END) added,
SUM(CASE WHEN NewOHQ - LastOHQ < 0 THEN LastOHQ - NewOHQ
ELSE 0 END) subtracted
FROM InventoryTransactions
GROUP BY userName下面是一个木琴,它显示了您的示例。
https://stackoverflow.com/questions/21311168
复制相似问题