来自2个表的SQL计数,带true/false
我有两张桌子:来自2个表的SQL计数,带true/false,sql,count,Sql,Count,我有两张桌子: 表1:钥匙、品牌、类型、欧洲、参考编号 表2:钥匙、所有者、地址、参考编号 两个表中的RefNr是唯一标识符,表1中的RefNr是真/假字段 我的问题是如何计算拥有欧洲车的所有车主的数量?根据给出的信息,我想说您正在寻找具有简单where条件的连接 select count(distinct t2.owner) from table1 t1 join table2 t2 on t1.refnr = t2.refnr where t1.european = true; 如
- 表1:钥匙、品牌、类型、欧洲、参考编号
- 表2:钥匙、所有者、地址、参考编号
我的问题是如何计算拥有欧洲车的所有车主的数量?根据给出的信息,我想说您正在寻找具有简单where条件的连接
select count(distinct t2.owner)
from table1 t1
join table2 t2 on t1.refnr = t2.refnr
where t1.european = true;
如果有人拥有一辆以上的汽车,则必须使用不同的t2.owner 根据给出的信息,我认为您正在寻找具有简单where条件的联接
select count(distinct t2.owner)
from table1 t1
join table2 t2 on t1.refnr = t2.refnr
where t1.european = true;
如果有人拥有一辆以上的汽车,则必须使用不同的t2.owner Sql Server的解决方案如下所示:
Select count(t2.Owner) as EuropeanCarOwner
From Table1 t1
Inner join Table2 t2 on t2.RefNr = t1.RefNr
where t1.European = 1
请注意,is-European列不是boolean的类型,而是varchar,您可以在while子句中执行t1.European='true'
如果一个人可以拥有多辆车,并且每辆车都作为不同的记录输入,则如果需要,每个车主只能计数一次,方法是:
count(distinct t2.owner)
Sql Server的解决方案如下:
Select count(t2.Owner) as EuropeanCarOwner
From Table1 t1
Inner join Table2 t2 on t2.RefNr = t1.RefNr
where t1.European = 1
请注意,is-European列不是boolean的类型,而是varchar,您可以在while子句中执行t1.European='true'
如果一个人可以拥有多辆车,并且每辆车都作为不同的记录输入,那么如果需要,每个车主只能被计数一次,方法是:
count(distinct t2.owner)
并不是说它说明了您使用的是哪个DBMS,这应该在SSMS中起作用
SELECT COUNT(*) AS EuroOwners
FROM Table1 t1
INNER JOIN Table2 t2 ON t1.RefNr = t2.RefNr AND t1.European = 1
它并不是说您正在使用哪个DBMS,而是应该在SSMS中工作
SELECT COUNT(*) AS EuroOwners
FROM Table1 t1
INNER JOIN Table2 t2 ON t1.RefNr = t2.RefNr AND t1.European = 1
. . 考虑到查询的措辞(“所有所有者计数”),我认为你是对的。考虑到查询的措辞(“所有所有者的计数”),我认为您是对的。您的解决方案非常有效,我唯一需要更改的是:
internaljointtable2t2on t1.RefNr=t2.RefNr其中t1.European=TRUE
DBMS=Access with classic ASP。您的解决方案非常有效,我唯一需要更改的是:internaljointtable2t2on t1.RefNr=t2.RefNr其中t1.European=TRUE