我首先运行查询以获取商品ID
SELECT ITEM
FROM `SALES`
WHERE DATE>='2018-2-1' AND DATE<='2018-2-5' AND CASH_CREDIT='1'
返回结果; 1,3,7,4,8,7,5,1
我需要使用这些ID号将每个项目的RETAIL_PRICE添加到一起。 我已经尝试过以下操作,但它不允许多次使用商品ID,所以它只添加了1,3,7,4,8,5的RETAIL_PRICE,这样就省去了其他7和1.我需要添加它们包含的那两个值。
SELECT SUM(RETAIL_PRICE)
FROM `ITEMS`
WHERE ID IN(1,3,7,4,8,7,5,1)
提前致谢。
答案 0 :(得分:0)
假设id
是ITEMS
表中的PRIMARY KEY(或唯一键),我们可以使用JOIN操作来获取所有匹配的行,并将每一行的零售价格加起来。
SELECT SUM(i.retail_price) AS tot_retail_price
FROM `ITEMS` i
JOIN `SALES` s
ON s.item = i.id
WHERE s.date >= '2018-02-01'
AND s.date < '2018-02-06'
AND s.cash_credit = '1'
正如你所观察到的那样,这个条件
WHERE ID IN (1,3,7,4,8,7,5,1)
相当于
WHERE ID IN (1,3,4,5,7,8)
相当于
WHERE ID IN (1,1,1,1,1,1,1,3,4,5,7,7,7,7,7,7,7,8)
该查询是一次遍历表,评估表中的每一行。 IN
列表中重复值的次数无关紧要。评估条件,并且行满足条件或不满足条件。条件为TRUE或FALSE(或NULL)。