Sql:在一个查询中选择count和许多其他字段

时间:2013-09-17 13:28:28

标签: sql-server-2008 select insert count

我使用的是Sql Server 2008 r2。

我有以下表格:Family,FamilyChild,Scale,Allowance。

我需要检索每个系列的子项数,以便在Scale表中选择适当的值,然后在Allowance表中将此值与许多其他字段(来自这些或其他表)一起插入。

我需要为族表中的每个家庭行执行此操作。

我怎样才能尽可能简单?

感谢。

3 个答案:

答案 0 :(得分:1)

假设FamilyChild上的每一行代表一个孩子:

SELECT  F.FamilyID,
        COUNT(*) NumberOfChildren
FROM Family F
LEFT JOIN FamilyChild FC
    ON F.FamilyID = FC.FamilyID
GROUP BY F.FamilyID

答案 1 :(得分:0)

如果没有表格的字段(以及加入表格所需要的东西,你就不会有一个非常合适的答案。我只能说:使用一个count()和group by运算符:

select f.family_name, count(c.children_id) 
from family f inner join familyChild c on f.family_id = c.family_id

然后你可以将它与缩放表连接起来,或者在EXISTS子查询中使用它来过滤缩放表并进行插入。

答案 2 :(得分:0)

在使用count,max这样的聚合函数时,你应该使用带有select语句的group by子句,而不参与聚合函数的列应该是group by子句....例如

select f.family_name, count(c.children_id) 
from family f inner join familyChild c on f.family_id = c.family_id
group by f.family_name