我的SQL查询有这样的问题:
MyTab1:
Kode ---- Perkiraan --- Lvl --- GD --- DK --- REFF ---- N1 ------ N2 ----- N3 ----- N4 < / p> 10.000 Group I 1 G D 0 0 0 0 10.100 test 1 2 G D 10.000 0 0 0 0 10.101 test 1AA 3 D D 10.100 10 20 15 15 10.102 test 1BB 3 D D 10.100 15 5 0 20 10.200 test 2 2 G D 10.100 0 0 0 0 10.201 test 2AA 2 D D 10.200 30 0 10 20 10.202 test 2BB 2 D D 10.200 0 50 3 50 20.000 Group II 1 G K 0 0 0 0 20.100 test XY 1 G K 20.000 0 0 0 0 20.101 test XY1 2 D K 20.100 20 10 50 60 20.102 test XY2 2 D K 20.100 10 10 50 50 20.200 test II 2 D K 20.000 5 2 0 3
列N4来自条件:
如果DK = D,则N1 + N2 - N3
如果DK = K,则N1 + N3-N2
在我的情况下,我想用这样的结果进行查询:
Kode ---- Perkiraan --- Lvl --- GD --- DK --- REFF ---- N1 ------ N2 ----- N3 ----- N4 < / p> 10.000 Group I 1 G D 55 50 0 0 10.100 test 1 2 G D 10.000 25 25 15 25 10.101 test 1AA 3 D D 10.100 10 20 15 15 10.102 test 1BB 3 D D 10.100 15 5 0 20 10.200 test 2 2 G D 10.100 30 50 13 67 10.201 test 2AA 2 D D 10.200 30 0 10 20 10.202 test 2BB 2 D D 10.200 0 50 3 47 20.000 Group II 1 G K 35 22 200 223 20.100 test XY 1 G K 20.000 30 20 100 110 20.101 test XY1 2 D K 20.100 20 10 50 60 20.102 test XY2 2 D K 20.100 10 10 50 50 20.200 test II 2 D K 20.000 5 2 0 3
标准1:lvl = 2,来自第3级的总和或与REFF列中的值相适应。
标准2:lvl = 1,来自第2级的总和或与REFF列中的值相适应。
答案 0 :(得分:0)
我不完全理解你的问题,但我会调查
sum (y) over (partition by xx order by z)
等
答案 1 :(得分:0)
谢谢先生......
就我而言,我们可以在MyTab1上看到: 我们可以在字段KODE看到,值从10.000到10.102 10.000是最高级别(lvl),10.100是第二级别,10.101是3级别。级别3是详细数据,在我的情况下,级别3是交易数据。
行级别1和2中的默认值为0(我称之为'G'=常规,请参阅字段GD。'G'常规,'D'是详细信息。)
我想使用顶部的样本进行查询。其中级别(lvl)2的条件公式是公式来自所有级别3和REFF = 10.100 和级别1(来自级别2的总和)的总和。
示例:
Kode Perkiraan Lvl GD DK REFF N1 N2 N3 N4 10.000 Group I 1 G 0 0 0 0 10.100 test 1 2 G D 10.000 0 0 0 0 10.101 test 1AA 3 D D 10.100 10 20 15 15 10.102 test 1BB 3 D D 10.100 15 5 0 20
我想要这样的结果:
10.100 test 1 2 G D 10.000 25 25 15 35 N1 = 25 is from 10+15 N2 = 25 is from 20+5 N3 = 15 is from 15+0 and N4 = 35 is from ( if Field DK = D, N1 + N2 - N3 and if DK = K then N1 + N3 - N2 ).
第1级就是这种情况。
我很难进行查询..
感谢您的关注和最诚挚的问候..
穆利阿迪。
印度尼西亚。