【发布时间】:2015-03-14 23:30:33
【问题描述】:
我有两张表,一张带有 id 和我正在检查重复项的字段连接,另一张带有 id 和所有其他分类数据,其中一项是 AmountPaid。以下查询:
Select
i.id,
i.CheckNumber,
AmountPaid
from
HS i where i.id in (
SELECT id
FROM HS_dups
WHERE concatckBatch IN (SELECT *
FROM (SELECT concatckBatch
FROM HS_dups
GROUP BY concatckBatch
HAVING COUNT(concatckBatch) > 1) AS a) AND concatckBatch != '')
给了我这个答案:
id checkNumber amount
15 1114392 1708.5
16 1114392 1432.2
17 1114392 1188.06
18 1114392 1405.25
19 1114392 603.96
我需要它给我这个答案,它是所有相同的支票号码和对应的id的总和:
id checkNumber amount
15 1114392 6337.97
16 1114392 6337.97
17 1114392 6337.97
18 1114392 6337.97
19 1114392 6337.97
我尝试了各种子查询,但由于某种原因我遇到了困难。
已编辑:感谢 jpw,这是正确答案:
Select
i.id,
i.CheckNumber,
i2.AmountPaid
from
HS i join (
select
checknumber,
sum(amountpaid) AmountPaid
from HS
where id in (
SELECT id
FROM HS_dups
WHERE concatckBatch IN (
SELECT *
FROM (
SELECT concatckBatch
FROM HS_dups
GROUP BY concatckBatch
HAVING COUNT(concatckBatch) > 1
) AS a
) AND concatckBatch != ''
)
group by checknumber) i2 on i2.checkNumber = i.checkNumber
where
i.id in (
SELECT id
FROM HS_dups
WHERE concatckBatch IN (
SELECT *
FROM (
SELECT concatckBatch
FROM HS_dups
GROUP BY concatckBatch
HAVING COUNT(concatckBatch) > 1
) AS a
) AND concatckBatch != ''
)
【问题讨论】: