0

我对这样的 SQL 查询有疑问:

我的标签1:

Kode ---- Perkiraan --- Lvl --- GD --- DK --- REFF ---- N1 ------ N2 -----N3 ----- N4

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

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. 标准 1:lvl = 2,3 级的总和值或与 REFF 列中的值相匹配。

  2. 标准 2:lvl = 1,2 级的总和值或与 REFF 列中的值相匹配。

  3. 条件 3:lvl = 3,列 N2 和 N3 是记录值,或者可能来自查询连接或来自其他表的总和。

有人可以帮助我请......

4

2 回答 2

0

谢谢先生...

在我的例子中,我们可以在 MyTab1 中看到:我们可以在 KODE 字段中看到,从 10.000 到 10.102 的值 10.000 是顶级 (lvl),10.100 是第二级,10.101 是第三级。第 3 级是详细数据,在我的例子中,第 3 级是交易数据。

第 1 行和第 2 行的默认值为 0(我称 'G' = General,参见字段 GD。'G' General 和 'D' 为 Detail )。

我想查询结果,例如顶部的示例。其中级别 (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级就是这种情况。

我很难进行查询..

感谢您的关注和最诚挚的问候..

穆利亚迪。
印度尼西亚。

于 2013-04-01T03:09:27.267 回答
0

我不完全理解你的问题,但我会调查

sum (y) over (partition by xx order by z) 

ETC

于 2013-03-31T20:04:10.707 回答