我有三张桌子
人
----+-------
id | ref1 |
----+-------
2 | 10 |
----+-------
2 | 11 |
----+-------
3 | 12 |
----+-------
表2
+-------+-------
|ref1 | ref2 |
-------+--------
|10 | 20 |
--------+-------
|10 | 22 |
--------+-------
|11 | 35 |
--------+-------
|26 |47 |
表3
-----+------
ref2 |price|
-----+------
20 |50 |
-----+------
22 |5 |
-----+-----
35 |10 |
我的问题是如何根据以下内容得到价格总和:table2的ref2 = table2的ref2和table2的ref1 = id person = 2时表人的ref1
如果我在表2中有双排,我需要只拿最高价格(对于表2的参考10,我需要采取唯一的价格50)
结果应为50 + 10
我希望这是可以理解的
谢谢
答案 0 :(得分:0)
您可以从子查询
中每个人员ID和ref1列的组合中获得表3中的最大值然后,您可以从这些值中获取maximum
select t.id, max(refPrice) as maxPrice
from
(
select p.id , p.ref1 + max(t3.price) as refPrice
from person p
join table2 t2
on p.ref1 = t2.ref1
join table3 t3
on t2.ref2 = t3.ref2
group by p.id, p.ref1
)t
group by t.id
答案 1 :(得分:0)
试试这种方式......
SELECT SUM(GroupSum) as
TotalSum
FROM(
SELECT MAX(t3.price) as GroupSum FROM Person p
INNER JOIN Table2 t2 ON p.ref1=t2.ref1
INNER JOIN Table3 t3 ON
t2.ref2=t3.ref2 WHERE p.id=2
GROUP BY p.id,p.ref1
) ttl
GROUP BY t.id