我想计算出仓库中的物品,计算出仓库中的空闲空间,然后输出到一个Inshelf和free列的表中,我想出了类似的方法。

SELECT COUNT(*) as Inshelf, free=10-Inshelf
  FROM stock.stockproduct
 WHERE StockNum = 1
   AND checkOutData is NULL;

表面上看是行不通的,这类问题有什么简单的解决办法吗?

最佳答案

这不起作用-聚合函数的结果(例如count())在考虑所有记录之后才可用。你需要一个子查询,在子查询中做计数,在外部查询中做减法运算。在不知道数据库模式的情况下,这充其量只是猜测,但是。。。

SELECT InShelf, free - InShelf
FROM (
    SELECT count(*) AS Inshelf, free
    FROM stockproduct
    WHERE StockNum = 1 AND checkOutData IS NULL
    GROUP BY somefield
) AS a

关于mysql - 对SQL count()值进行计算,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12545553/

10-10 06:41