我使用的是Sql Server 2008 r2。
我有以下表格:Family,FamilyChild,Scale,Allowance。
我需要检索每个系列的子项数,以便在Scale表中选择适当的值,然后在Allowance表中将此值与许多其他字段(来自这些或其他表)一起插入。
我需要为族表中的每个家庭行执行此操作。
我怎样才能尽可能简单?
感谢。
答案 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