我有2张桌子。这两个表都包含两列:id
,amt
。
表1包含以下数据:
id, amt
1, 500;
2, 2000;
4, 1000.
表2包含:
id, amt
1, 100;
1, 100;
1, 100;
1, 100;
1, 100;
2, 250;
3, 300;
4, 1000;
现在我的要求是获取表中常见id和常用amt的记录。但是这里面临的挑战是,表1中都提供了id 1。但是表2中的总和(amt)id为id =表1中的id为1,我需要将此记录拉为常用记录。请帮帮我。感谢。
答案 0 :(得分:4)
SELECT id, amt
FROM Table1
INTERSECT
SELECT id, SUM(amt)
FROM Table2
GROUP BY id
答案 1 :(得分:3)
类似的东西:
SELECT *
FROM table1
JOIN (SELECT id, SUM(amt) as amt FROM table2 GROUP BY id) t2
ON t1.id = t2.id AND t1.amt=t2.amt
答案 2 :(得分:1)
试试这个:
WITH T2_CTE (id, amt)
AS
(
SELECT id, SUM(amt)
FROM table2
GROUP BY id
)
SELECT t1.id, t1.amt
FROM table1 t1, T2_CTE
WHERE t1.id = T2_CTE.id AND t2.amt = T2_CTE.amt