2015-05-12 18 views
1

我有2列,我想乘「速度」以及對於每個組大公「距離」點appeare
計算兩個值從同一列的系統在一個precedure(MySQL的)

表:

--- type --- | ---分---
....速度.... | ....... 25 ........
....垃圾....... | ......... 1 ........
..距離.. | ...... 120 ........
....速度。 ... | ....... 19 ........
....垃圾....... | ......... 1 ..... ...
..距離.. | ...... 102 ........
....速度.... | ....... 15 .... ...
....垃圾....... | ......... 1 ........
..距離.. | ..... ..99 ........
...

速度(25)*距離(120),保存值
速度(19)*距離(102),保存值
速度(15)*距離(99),保存值

而在最後得到在SUM(值)

我想做的事情是這樣的:(我知道它錯了,但反正你知道我的意思...)

SET value = (SELECT SUM(t.v) 
      FROM(
       ((SELECT (points) s FROM UserData WHERE type = 'speed') 
       * 
       (SELECT (points) d FROM UserData WHERE type = 'distance')) 
       v 
      ) t); 
+0

你能否完全提供你的表結構?速度和距離有什麼關係?假設你說它是「set」,你的意思是第一和第二排,然後是第三和第四排,等等......? –

+0

是的,我的意思是。真正的桌子有一些基本的結構。 – user3800924

回答

2

正如你所說的,「它真的錯了「,但假設數據是可靠的在你顯示的順序中,這可能會起作用....

SET @i := 0; 
SET @part := 0; 
SET @running := 0; 

SELECT IF(@i=0, @part := `points`, @part := @part * `points`) AS `current_partial` 
    , IF(@i=1, @running := @running + @part , @running) AS `incremental_running` 
    , @i := IF(@i=1,0,1) AS `stage` 
FROM some_ridiculous_table 
; 

SELECT @running; 
相關問題