這個問題起初看起來非常簡單,但是隨着您開始編寫複雜命中。我已經附上了我的SQL結果集的圖片。結果是39行。我需要將同一個塊的所有連續行與相同的值結合起來。在這個例子中,最終的結果應該是29行,其中下面所有紅色框的行應該合併爲1行。SQL - 將相同塊的連續幾個月的數量相加,並且數量相同
因此,例如與數量第一的Redbox = 40應合併成1排與term_start = 2017年6月1日和term_end = 2017年8月1日
這裏是我的代碼
SELECT
pp.position
, term_start = pq.begtime
, term_end = pq.endtime
, quantity = CONVERT(VARCHAR,convert(double precision, pq.energy))
, block = p.block
FROM trade t
INNER JOIN position p on p.trade = t.trade
INNER JOIN powerposition pp on p.position = pp.position
INNER JOIN powerquantity pq on pq.position = pp.position
AND pq.posdetail = pp.posdetail
AND pq.quantitystatus = 'TRADE'
WHERE 1=1
AND p.positionmode = 'PHYSICAL'
AND t.collaboration = 13119572
我一直被困在這個問題上連續三天了。我已經探索過使用CTE和Row_Number()over(),但沒有成功。任何幫助將不勝感激!!
沒有意義。考慮'pp.position'。 (在你做之後,* simple *解決方案是'group by') – Amit
你使用了哪個數據庫?請標記你的問題。 (我猜Postgres。) –
你想返回哪個'position'和'block'值? – sgeddes