Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL-对两行数据求和,同时仍显示其余行_Sql_Sum_Row - Fatal编程技术网

SQL-对两行数据求和,同时仍显示其余行

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的总和 我相信这不会太难,但我还不太

例如,有一个表中列出了销售代表及其销售额。其中两个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的总和


我相信这不会太难,但我还不太熟悉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;