2011-11-22 58 views
-2

您好我正在嘗試創建一個SQL查詢是我將其行下的行中列的值乘以1行的值。我該怎麼做?乘兩列很容易,但我似乎卡在乘以2行。在sql中相乘2行

+1

可能重複[SQL Server查詢帶來的GroupWise倍增](http://stackoverflow.com/questions/3653586/sql-server -query-to-bring-groupwise-multiplication) – gbn

+1

向我們展示你的表格defs – Marco

+0

這將有助於:http://stackoverflow.com/questions/8185873/multiply-rows-in-t-sql – AlphaMale

回答

3

這取決於你的情況。

要simplyfy它......如果你的表是這樣的......

CREATE TABLE `test` (
    `number` BIGINT(20) NOT NULL, 
    PRIMARY KEY (`number`) 
) ENGINE=INNODB DEFAULT CHARSET=latin1 

...在像這樣的一些數據...

number 
------ 
    2 
    3 
    4 

...你可以做這樣的事情:

SELECT 
    (SELECT number 
    FROM test 
    WHERE number = 2) * 
    (SELECT number 
    FROM test 
    WHERE number = 3) AS "product" 
FROM test 
LIMIT 1; 

你可能只是藏漢在JOIN表到自身。

1

加入對同桌

select t1.val*t2.val from tab t1, tab t2 where t1.id=5 and t2.id=6 

select t1.val*t2.val from tab t1, tab t2 where t1.id=5 and t2.id=t1.id+1