我正在使用 Sql Server 2008 r2。
我有以下表格:Family、FamilyChild、Scale、Allowance。
我需要检索每个家庭的孩子数,以便在 Scale 表中选择适当的值,然后将此值与 Allowance 表中的许多其他字段(来自这些或其他表)一起插入。
我需要为家庭表中的每个家庭行执行此操作。
我怎样才能尽可能简单地做到这一点?
谢谢。
我正在使用 Sql Server 2008 r2。
我有以下表格:Family、FamilyChild、Scale、Allowance。
我需要检索每个家庭的孩子数,以便在 Scale 表中选择适当的值,然后将此值与 Allowance 表中的许多其他字段(来自这些或其他表)一起插入。
我需要为家庭表中的每个家庭行执行此操作。
我怎样才能尽可能简单地做到这一点?
谢谢。
假设每一行FamilyChild
代表一个孩子:
SELECT F.FamilyID,
COUNT(*) NumberOfChildren
FROM Family F
LEFT JOIN FamilyChild FC
ON F.FamilyID = FC.FamilyID
GROUP BY F.FamilyID
在使用 count,max 等聚合函数时,您应该将 group by 子句与 select 语句一起使用,并且不参与聚合函数的列应该是 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
如果没有表格的字段(以及加入表格所需的字段,您将不会有一个非常合适的答案。我只能说:将 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 子查询中使用它来过滤比例表并进行插入。