显示小计的DB2查询
实际使用的查询:显示小计的DB2查询,db2,Db2,实际使用的查询: SELECT X.TNO,Y.KID,X.TBALANCE FROM (SELECT A.TNO,SUM(A.TBAL) TBALANCE,B.CNO FROM TABLE1 A,TABLE2 B WHERE A.TNO=B.TNO AND B.CPRIM='Y' AND A.TCODE='M' GROUP BY A.TNO,B.CNO) X, TABLE3 Y WHERE X.CNO=Y.CNO; 实际结果: TABLE3.KID
SELECT X.TNO,Y.KID,X.TBALANCE FROM
(SELECT A.TNO,SUM(A.TBAL) TBALANCE,B.CNO FROM TABLE1 A,TABLE2 B
WHERE A.TNO=B.TNO AND B.CPRIM='Y' AND A.TCODE='M'
GROUP BY A.TNO,B.CNO) X, TABLE3 Y
WHERE X.CNO=Y.CNO;
实际结果:
TABLE3.KID TABLE2.TNO TABLE1.SUM(TBAL)
------------------------------------------
R23 34 30
R23 35 40
R55 38 10
R55 39 50
我有三张桌子如下
表1:
TNO TBAL TCODE
-----------------
34 30 M
35 40 M
36 50 N
38 10 M
39 50 M
表2:
TNO CNO CPRIM
----------------
34 A3 Y
34 B3 N
34 C1 N
35 D1 Y
35 D2 N
38 E2 Y
38 E4 N
39 F3 Y
39 F5 N
表3:
CNO KID
----------
A3 R23
35 R23
E2 R55
F3 R55
需要上面3个表中的结果,其中表1.TCODE='M'和表2.CPRIM='Y':
TABLE3.KID TABLE2.TNO TABLE1.SUM(TBAL)
------------------------------------------
R23 34 70
R23 35 70
R55 38 60
R55 39 60
请帮助我实现上述结果你确定你想要的结果吗?这对我来说没有意义 <>这将是我所考虑的标准聚合:
SELECT C.KID,B.CNO, SUM(A.TBAL)
FROM TABLE3 C
JOIN TABLE2 B ON B.CNO = C.CNO
JOIN TABLE1 A ON A.TNO = B.TNO
WHERE B.CPRIM='Y' AND A.TCODE='M'
GROUP BY C.KID,B.CNO
但是要给出你想要的结果
WITH KIDSUM as (SELECT C.KID, SUM(A.TBAL) as SUMBAL
FROM TABLE3 C
JOIN TABLE2 B ON B.CNO = C.CNO
JOIN TABLE1 A ON A.TNO = B.TNO
WHERE B.CPRIM='Y' AND A.TCODE='M'
GROUP BY C.KID
)
SELECT K.KID,B.TNO, K.SUMBAL
FROM TABLE3 C
JOIN TABLE2 B ON B.CNO = C.CNO
JOIN TABLE1 A ON A.TNO = B.TNO
JOIN KIDSUM K ON K.KID = C.KID
WHERE B.CPRIM='Y' AND A.TCODE='M'
嗨,查尔斯,我尝试了以下方法:从表1、表2、表3中选择表3.KID、SUMTABLE1.TNO、表1.TBAL,其中表1.TNO=TABLE2.TNO和表1.TCODE='M'和表2.CPRIM='Y'以及表2.CNO=TABLE3.CNO按表3.KID分组,表1.t您应该编辑您的问题并包括您尝试过的内容。结果你看到了……查尔斯,我编辑了这个问题,包括了我试过的内容。Pl现在看看表3中的数据是否有输入错误?第35行,R23看起来应该是D1,R23