我有以下表结构
id stock category created type 11 10 4 2015-06-05 13:30:56 a 12 5 4 2015-06-05 13:31:30 s 14 12 6 2015-06-05 15:58:41 a 15 10 6 2015-06-05 15:59:07 s 16 10 4 2015-06-05 16:00:18 a 17 10 4 2015-06-05 16:00:52 a 18 1 6 2015-06-05 16:01:23 a 20 10 6 2015-06-05 16:51:48 a 21 10 6 2015-06-05 17:00:23 s 22 10 4 2015-06-05 17:02:39 s 23 45 7 2015-06-05 20:48:31 a
键入' a'是为了增加股票 输入' s'待售
我正在执行以下查询以获取库存余额,但我需要获取每个类别的余额。
这是我到目前为止尝试的查询:
SELECT ( select SUM(stock) from stock where type='a' ) - ( select SUM(stock) from stock where type='s' ) as balance
答案 0 :(得分:3)
我认为你可以试试(未经测试)
select category , sum(if(type='a', stock, 0)) - sum(if(type='s', stock, 0)) as balance from stock group by category
我刚测试过它并且有效
答案 1 :(得分:0)
如果您使用的是PHP,则可以使用此
SELECT SUM(stock) FROM stock WHERE type= 'a' AND category = 4
将结果放在$ var1
中SELECT SUM(stock) FROM stock WHERE type= 'b' AND category = 4
将结果放在$ var2中,然后执行
$var = $var1 - $var2
您可以循环SQL调用并设置所需的类别编号。
还有更多的解决方案,但是因为我不知道您之前使用的代码,如果您将结果放在这里,这是我能做的最好的。