php - 从下表中按类别检索库存余额

标签 php mysql mysqli

我有如下表结构

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   

Type 'a' is for stock added
Type 's' is for sale

我正在执行以下查询以获取库存余额,但我需要获取每个类别的余额。

这是我到目前为止尝试过的查询:

SELECT (
    select SUM(stock)
    from stock
    where type='a'
) - (
    select SUM(stock)
    from stock
    where type='s'
) as balance

最佳答案

我想你可以试试(未测试)

select category
, sum(if(type='a', stock, 0)) - sum(if(type='s', stock, 0)) as balance
from stock
group by category

编辑:

我刚刚测试过它,它可以工作

关于php - 从下表中按类别检索库存余额,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30673150/

相关文章:

php - 连接到多个表

php - Laravel 之外的 Laravel IoC

sql - 如何创建一个表,其中一列是另一个表?

php - 我发现网页上未出现下拉列表的错误

php - "session.save_path"中php session 文件的最大数量是多少

php - 使用 file_get_contents() 在 html 文件中设置 php 变量

php - SQL 插入代码 PHP

mysql - MariaDB 用户定义的函数在需要小数时返回 int 或 null

php - mysqli_fetch_assoc()需要参数/调用成员函数bind_param()错误。如何获取并修复实际的mysql错误?

php - 创建 PHP/MySQL 应用程序 - 所有登录尝试均失败