【发布时间】:2011-11-22 15:06:06
【问题描述】:
您好,我正在尝试创建一个 SQL 查询,如果我将 1 行的值乘以其下方行中的列中的值。我该怎么做?将两列相乘很容易,但我似乎坚持将两行相乘。
【问题讨论】:
-
请向我们展示您的表格定义
-
在任何 SQL 方言中都没有“行在它下面”这样的概念。 SQL 没有“顺序”
您好,我正在尝试创建一个 SQL 查询,如果我将 1 行的值乘以其下方行中的列中的值。我该怎么做?将两列相乘很容易,但我似乎坚持将两行相乘。
【问题讨论】:
这取决于你的情况。
简单来说...如果您的表格看起来像这样...
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 放在桌子上。
【讨论】:
加入同一张桌子
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
【讨论】: