2

我正在使用 Sql Server 2008 r2。

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

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

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

我怎样才能尽可能简单地做到这一点?

谢谢。

4

3 回答 3

1

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

SELECT  F.FamilyID,
        COUNT(*) NumberOfChildren
FROM Family F
LEFT JOIN FamilyChild FC
    ON F.FamilyID = FC.FamilyID
GROUP BY F.FamilyID
于 2013-09-17T13:33:32.790 回答
0

在使用 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
于 2013-09-17T13:40:06.080 回答
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 子查询中使用它来过滤比例表并进行插入。

于 2013-09-17T13:35:15.583 回答