有两个表A和B,
A
PZHM,PJHM,CPXH,CPDJ,SL
1201,333, 201, 1, 20
1203,333, 201, 1, 120
1204,333, 202, 1, 20
1213,335, 203, 1, 320
1214,335, 203, 1, 20
B
PZHM,CPXH,CPDJ,SL
333, 201, 1, 220
335, 203, 1, 420
336, 201, 1, 20
现需查询出A表汇总后大于B表的记录,符合A.CPXH=B.CPXH AND A.CPDJ=B.CPDJ AND A.PJHM=B.PJHM
SELECT cpxh, cpdj pjhm, SUM(sl) AS sl
FROM a t
WHERE AND EXISTS
(SELECT 1
FROM B cp21
WHERE
cp21.cpxh = t.cpxh AND cp21.pZhm = t.pJhm AND CP21.CPDJ = T.CPDJ AND
CP21.SL < t.sl)
GROUP BY cpxh, cpdj ,pjhm
------解决思路----------------------
SELECT t.*
FROM (SELECT PJHM, CPXH, CPDJ, SUM(SL) SL FROM A GROUP BY PJHM, CPXH, CPDJ) t
JOIN B ON B.PJHM=t.PJHM AND B.CPXH=t.CPXH AND B.CPDJ=t.CPDJ
WHERE t.SL>B.SL