为了简化问题,我只在测试表示例中使用了几个字段
主数据库
Id Description type cost
'1', 'Test1', '2', '100'
'2', 'Test2', '2', '100'
'3', 'Test3', '3', '100'
'4', 'Test4', '4', '100'
标签数据库
ID Name Masterid
'1', 'Label1', '1'
'2', 'Label1', '2'
'3', 'Label2', '1'
'4', 'Label3', '1'
我想计算所有 ID 并为 master 中包含 label1 和 label2 的所有记录的成本字段汇总标签
我的查询
Select count(Distinct m.id) as andtall , sum(m.cost) as cost
from
master m
join labels l ON l.Masterid=m.id and l.name in ('Label1','Label2')
由于我在计数中使用 Distinct,因此结果将是正确的,但 Cost 是错误的,它包含 3 条记录而不是 2 条记录。
'2', '300' 我希望它返回 200,因为只应返回主表中的 2 条记录。