【发布时间】:2021-07-28 09:07:42
【问题描述】:
这里的问题是我有一个接受这些输入的程序
[
{
customer: 'Alexandra'
productCode: 'SH20'
},
{
customer: 'Alex'
productCode: 'SH20'
},
{
customer: 'Alexis'
productCode: 'SH21'
}
]
每个产品代码都有自己的价格,表产品是这样的
{
id: 1,
productCode: 'SH20',
name: 'Tires',
price: 100
}
我想根据输入总结产品的总价格,但是使用WHERE IN ("SH20", "SH20", "SH21") 只会显示“SH20”中的 1 行,如果我总结产品总价格我得到的是错误的。
如何使用 SQL 选择所有行(包括重复项)并求和?这种问题只能用SQL解决吗?
编辑:
尝试查询,以免假设产品SH21花费200,而SH20 100。这个查询的总价格是300,应该是400,因为有2个'SH20'。
SELECT sum(price) FROM product WHERE productCode in ('SH20', 'SH20', 'SH21')
【问题讨论】:
-
我很好奇
WHERE IN ("SH20", "SH20", "SH21").. 请发布您尝试的查询。 -
已编辑@FaNo_FN 我添加了一些解释和示例。
-
我删除了冲突的 DBMS 标签。请为您真正使用的数据库产品添加一个标签。
-
我仍然对
..productCode IN ("SH20", "SH20", "SH21")感到困惑。SH20不是重复了两次吗?不应该只是..productCode IN ("SH20", "SH21")吗?还是我在这里遗漏了什么? -
是的,这就是问题所在,我现在也更改标题以匹配我回答的问题。如果您尝试了下面的答案,它将打印正确的结果。我应该使用
JOIN而不是WHERE IN。
标签: sql postgresql