我有这张表:
CREATE TABLE TEST
(
TITLE VARCHAR2(199 BYTE),
AMOUNT NUMBER,
VALUE NUMBER
)
以及INSERT
语句:
INSERT INTO TEST (TITLE, AMOUNT, VAL)
VALUES (Switch, 3000, 12);
COMMIT;
我们有一个金额= 3000最多12,现在我们需要计算。
所以
- 3000乘以1 = 3000
- 3000乘以2 = 6000
- 3000乘以3 = 9000
- 3000乘以4 = 12000
- 3000乘以5 = 15000
- 3000乘以6 = 18000
- 3000乘以7 = 21000
- 3000乘以8 = 24000
- 3000乘以9 = 27000
- 3000乘以10 = 30000
- 3000乘以11 = 33000
- 3000乘以12 = 36000
此致
需要以下格式的输出。
Title Amount Total
Switch 30000 3000 6000 9000 12000 15000 18000 21000 24000 27000 30000 33000 36000 231000
plug
board
有人能帮助我如何在SQL中得到这个输出吗?
3条答案
按热度按时间vsmadaxz1#
您可以使用递归查询:
或相关的分层查询:
其中,对于示例数据:
两者输出:
| 标题|价值|
| - -| - -|
| 切换|三千|
| 切换|六千|
| 切换|九千|
| 切换|一万二千|
| 切换|一万五千|
| 切换|小行星18000|
| 切换|小行星21000|
| 切换|小行星24000|
| 切换|小行星27000|
| 切换|三万|
| 切换|小行星33000|
| 切换|小行星36000|
fiddle
或者,对于您的输出格式:
或
这两个输出:
| 标题|金额|总计|
| - -| - -| - -|
| 切换|3000 6000 9000 12000 15000 18000 21000 24000 27000 30000 33000 36000年期间,在2000年至2000年期间,在2000年至2000年期间,在2000年至2000年期间,在2000年至2000年期间,在2000年至2000年期间,在2000年至2000年期间,在2000年至2000年期间,在2000年至2000年期间,在2000年至2000年期间,在2000年至2000年期间,在2000年至2000年期间,在2000年至2000年期间,在2000年至2000年期间,在2000年至2|小行星234000|
fiddle
yacmzcpb2#
请按以下方式尝试:
vshtjzan3#
亲爱的尊敬的Maven感谢您的合作,我有oracle 10 G不支持LISTAGG,我需要在10G中做什么,
谢谢
此致