我有2张桌子:
两个表中的RefNr是唯一标识符,表1中的European是一个True / False字段。
我的问题是,如何计算所有拥有欧洲汽车的车主?
答案 0 :(得分:1)
根据给出的信息,我想您正在寻找具有简单where条件的联接?
select count(distinct t2.owner)
from table1 t1
join table2 t2 on t1.refnr = t2.refnr
where t1.european = true;
如果某人拥有多辆汽车,则distinct t2.owner
是必需的。
答案 1 :(得分:1)
以下是Sql Server的解决方案:
Select count(t2.Owner) as EuropeanCarOwner
From Table1 t1
Inner join Table2 t2 on t2.RefNr = t1.RefNr
where t1.European = 1
请注意,欧洲列不是布尔类型而是varchar,您可以在while子句中执行t1.European ='true'
如果某人可以拥有多辆汽车,并且每辆汽车都以不同的记录形式输入,那么如果需要,可以通过count(distinct t2.owner)
答案 2 :(得分:0)
并非说明您正在使用哪个DBMS,它应该可以在SSMS中工作;
SELECT COUNT(*) AS EuroOwners
FROM Table1 t1
INNER JOIN Table2 t2 ON t1.RefNr = t2.RefNr AND t1.European = 1