MySql结果集合并列

标签 mysql resultset

我的查询有以下结果集:

OrderId CustomerId  ProducerId  CustomerPayment ProducerPayment
1       1           3           10              5
1       1           4           10              5
1       2           3           10              5
1       2           4           10              5

我需要将此结果返回到此:

OrderId UserId  Payment
1       1       20
1       2       20
1       3       10
1       4       10

只需将 CustomerIdProducerId 合并为 UserId。与付款列相同。

有没有什么方法可以仅使用简单的selectgroup by来实现这一点?我避免使用临时表,而是调用多个相同的查询等进行优化。我希望这是可能的。

非常感谢

最佳答案

SELECT 
OrderId,
CustomerID AS UserId,
SUM (CustomerPayment) As Payment
FROM orders
UNION ALL
SELECT 
OrderId,
ProducerId AS UserId,
SUM (ProducerPayment) As Payment
FROM orders

关于MySql结果集合并列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8255073/

相关文章:

Mysql连接两个表,其中table1中的部分字符串在table2中

MySQL 5.5 - 用上面的值填补空白

mysql - 计算列中的不同值,如果在Where子句中没有找到则返回零

java - 如何在 SQLite 中测试早于当前日期的日期

java - 仅 ResultSet 的最后结果显示在 ArrayList 中

java - 在 Java EE 中限制对特定方法的多次访问的过程

mysql - 如何返回每个组中存在的所有行?

mysql - 过程中的 SQL 1064

java - 用数据填充 ResultSet 的简单方法

java结果集覆盖