我有两个表说T1和T2,一个(T1)存储要支付的金额(AP),主键ID和人员ID(pid)。
支付的其他表(T2)存储金额(支付),这可以是多个,因为可以为AP进行多次支付,也可以存储T1 ID的外键和类型。
现在我想要的是来自t1的SUM(AP)和SUM(Pay)groupby类型。
我为它做的查询,(不是确切的查询,但解释了我正在尝试的内容)
select SUM(AP) from T1
where pid='someid' join left T2 on t1.id = t2.id,
select Pay and type from T2, groupby type
解释
T1 T2
ID AP ID Pay Type
19 X 19 W A
20 Y 19 Q B
21 Z 21 R B
21 S B
现在发生了什么,当它按类型分组时,它一起需要19,21,21作为B,并且由此它给出了从T1到Z + X两倍的总和,也是对于A,它取A和将总和换算为X
我收到格式
的数据1. AP:X, Pay:W, Type: A
2. AP: X+Z+Z, Pay:Q+R+S,Type B
我需要的是来自T1的T1和来自T2的总和(基于来自T1的id)按类型分组
我使用两个不同的查询解决了这个问题,但是不能在单个查询中进行,我知道这可能很复杂,但如果可能的话,我想知道。
希望我试着提出足够清楚的问题。
答案 0 :(得分:1)
这就是你要追求的吗?
select
vt1.id,
vt1.ap,
sum(t2.pay),
t2.type
from (select id, sum(ap) as ap from t1 group by id) vt1
left join t2 on vt1.id=t2.id
group by vt1.id, vt1.ap, t2.type