我的mysql技能是有限的,通常我只需要从一个表中选择一些条件所需的列。现在我需要的不止这些,我迷路了。
我要做的是添加一个项目的数量,其中两个不同的列匹配,并且所有数据都在同一个表中。
表格示例;
Item Quantity Col1 Col2
A 1 123 234
A 3 456 758
A 2 588 258
A 2 234 456
我最初的想法是写一个条件如下的查询;
WHERE Col1 = Col2
我不明白为什么我没有收到任何结果直到今天早上我才意识到,查询只是在检查同一行中的匹配项。我意识到我需要写一个子查询,现在我来了。子查询对我来说就像代数对很多人一样。一开始很顺利,后来我就迷失了方向。在我看来这应该很简单,但我觉得我把事情搞得太复杂了。
要执行此任务,查询需要什么样的外观?我想学这个,因为我知道我将来会需要它。
- 编辑
我想通过查询实现的是,只要col1和col2之间存在匹配,就添加行的数量。
- edit2不确定它是否暗示了我想做什么,但是。。
select Item, sum(Quantity)
from exampleTable
where col1 =
(select col2
from exampleTable)
- edit3-我问题的解决方案
在此之前,我想为我的问题描述不当而道歉。咨询了一位同事,解决我问题的方法很简单。
select a.Quantity +
(select b.Quantity
from exampleTable b
where Col2 = Col1)
from exampleTable a
3条答案
按热度按时间yyhrrdl81#
可能是这样的,子查询求和合并两列的数量,而外部查询求和并测试是否出现了不止一次的情况
ttygqcqt2#
如果我理解你清楚你想加(总和)的项目数量,每当col1和col2相等。。。
这是对它的查询
从col1=col2的示例中选择sum(数量)
jobtbby33#
从表名称中选择总和(数量),其中col1=col2