计算库存的SQL问题

时间:2016-11-01 16:37:13

标签: mysql

我想问一个与SQL有关的问题。

我有那些带汽车的桌子和汽车的销售,我想找到股票。要做到这一点,我必须计算汽车VID中有多少价值并出现在销售VID上

我尝试了以下查询

从汽车,销售地点选择不同的计数(*)Cars.VID!= Sales.VID;

我的结果是63而不是3,这是期望的结果。有没有人有任何建议?

2 个答案:

答案 0 :(得分:0)

如果我正确阅读了您的要求,您希望从VID表中获取 not 出现在Cars表中的每个不同的Sales(即尚未售出)。对于这种情况,我会使用WHERE VID NOT IN ...

SELECT COUNT(DISTINCT VID)
FROM Cars
WHERE VID NOT IN (SELECT DISTINCT VID FROM Sales)

答案 1 :(得分:0)

未经测试,但没有子选择。对于较大的汽车和销售清单以及两个表中的VID索引,可能会更快。

SELECT COUNT(c.VID) 来自汽车c LEFT JOIN Sales s ON s.VID = c.VID WHERE s.VID为空

我的问题是:如果每辆车都是独一无二的,为什么要制作单独的销售表。您可以将销售列添加到Cars表中吗?