SQL-对两行数据求和,同时仍显示其余行
例如,有一个表中列出了销售代表及其销售额。其中两个rep ID用于同一个rep,因此我需要能够在查询中将这两行合并为一行,同时仍然显示其余的行。无论是在SQL查询中还是在PHP中完成,这两种方法都可以 下面是表格的外观:SQL-对两行数据求和,同时仍显示其余行,sql,sum,row,Sql,Sum,Row,例如,有一个表中列出了销售代表及其销售额。其中两个rep ID用于同一个rep,因此我需要能够在查询中将这两行合并为一行,同时仍然显示其余的行。无论是在SQL查询中还是在PHP中完成,这两种方法都可以 下面是表格的外观: ID Sales 100 $5 101 $10 102 $2 500 $3 我需要它像这样输出: ID Sales 100 $8 101 $10 102 $2 其中ID100的销售额是100和500的总和 我相信这不会太难,但我还不太
ID Sales
100 $5
101 $10
102 $2
500 $3
我需要它像这样输出:
ID Sales
100 $8
101 $10
102 $2
其中ID100的销售额是100和500的总和
我相信这不会太难,但我还不太熟悉SQL或PHP,不过我正在努力学习。谢谢。使用两个单独的查询,然后使用union
SELECT ID, SUM(Sales) FROM table WHERE ID IN (100,500)
UNION ALL
SELECT ID, Sales FROM table WHERE ID NOT IN (100,500)
试一试
什么字段可以用来确定100和500是同一个人?(为什么他有两个条目?)?或者每次你想执行这个操作时,你都要手动引用它们吗?每次我需要这个时,我都要手动引用这两个id。我正在使用只读数据库。他们有两个条目的原因是一个很长的故事,并且由于我们使用的系统的设置方式无法避免。合并时,我必须手动将ID设置为100。谢谢,应该可以了!我知道这不应该那么难。谢谢这是怎么回事?不知道-1是做什么的。我得到一个if-else语句,这种方式看起来很有希望,我只想知道-1部分的查询中发生了什么。谢谢这实际上在select语句中起作用。看这个。它对id 100和500做了一个例外并添加了它们。查询告诉sql将id 500和id 100视为相同id的位置:-1。明白了,谢谢。现在我要弄清楚如何将它集成到我已经过于复杂的查询中。。。
select id, sum(sales) from your_table
group by case id
when 100 then -1
when 500 then -1
else id end;