[英]SQL merge and sum multiple rows into one row
我加入了多个表并获得了一个结果集,该结果集具有相同 ID 或类型的不同行,但它们具有不同的列值。
例如。
| Number | creation_date | value_1 | value_2 | value_3(value_1-value_2)
| -------- | -------- | ------ | ------ | ----- |
| 33445500 | 2022-03-20 | 30000 | 0 | 30000 |
| 33445500 | 2022-03-25 | 30000 | 0 | 30000 |
| 33445511 | 2022-03-25 | 20000 | 10000 | 10000 |
| 33445512 | 2022-01-01 | 20000 | 10000 | 10000 |
| 33445512 | 2022-03-25 | 20000 | 0 | 20000 |
我想要如下结果:
| Number | creation_date | value_1 | value_2 | value_3(value_1-value_2)
| -------- | -------- | ------ | ------ | ----- |
| 33445500 | 2022-03-25 | 60000 | 0 | 60000 |
| 33445511 | 2022-03-25 | 20000 | 10000 | 10000 |
| 33445512 | 2022-03-25 | 40000 | 10000 | 30000 |
How can this be done in SQL?
I would appreciate any kind of help. Thank you!
select
CONVERT( date, SYSDATETIME() ) as some_date,
LEFT(value_1,9) as value_1,
from database
join a__ on a__.a__b = b__.bbb_ref
join k__ on k__.kae__ref = b__.bbb__ref
join af__ on af__.af_ref = b__.af__ref
where lorem ipsum
尝试这个
SELECT
Number,
MAX(creation_date) creation_date,
SUM(value1) value1,
SUM(value2) value2,
SUM(value3) value3
FROM myTable
GROUP BY Number
有点像另一个答案,但有些不同:
SELECT
Number
, MAX(creation_date) AS [creation_date]
, SUM(value_1) AS [value_1]
, SUM(value_1) AS [value_1]
, SUM(value_1 - value_2) AS [value_3]
FROM result_set
GROUP BY Number
ORDER BY Number, MAX(creation_date)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.