繁体   English   中英

SQL查询,从ID多次求和相同的条目

[英]SQL Query, Sum the same entry from ID multiple times

我首先运行查询以获取商品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)

提前致谢。

假设idITEMS表中的PRIMARY KEY(或UNIQUE 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)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM