Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 2008 Sql:在一个查询中选择count和许多其他字段_Sql Server 2008_Select_Insert_Count - Fatal编程技术网

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

Sql server 2008 Sql:在一个查询中选择count和许多其他字段,sql-server-2008,select,insert,count,Sql Server 2008,Select,Insert,Count,我正在使用SQLServer2008R2 我有以下表格:家庭、家庭子女、等级、津贴 我需要检索每个家庭的子女数,以便在比例表中选择适当的值,然后将该值与许多其他字段(从这些或其他表中)一起插入津贴表中 我需要为族表中的每个族行执行此操作 我怎样才能做到尽可能简单 谢谢。假设FamilyChild上的每一行代表一个孩子: SELECT F.FamilyID, COUNT(*) NumberOfChildren FROM Family F LEFT JOIN FamilyChild

我正在使用SQLServer2008R2

我有以下表格:家庭、家庭子女、等级、津贴

我需要检索每个家庭的子女数,以便在比例表中选择适当的值,然后将该值与许多其他字段(从这些或其他表中)一起插入津贴表中

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

我怎样才能做到尽可能简单


谢谢。

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

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

如果没有表的字段(以及连接表所需的那些字段),您将不会得到非常合适的答案。我只能说:使用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

然后,您可以将其与比例表联接,或在and EXISTS子查询中使用它来筛选比例表并进行插入。

在使用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

最有可能是存储过程…到目前为止,您尝试了什么?我尝试了选择族id、按族id分组的计数,然后使用union select,但这不是方法,因为我想使用计数,以便在比例表中为具有其他字段的每个族选择适当的值,例如族地址和孩子出生。也许我可以用连接选择来完成,但我不知道怎么做。谢谢,我需要根据此计数以及其他许多字段(例如家庭文件号和孩子出生)在比例表中选择计数和适当的值。我该怎么做?谢谢,我需要选择计数和适当的值比例表中的值取决于此计数以及许多其他字段,例如家庭文件号和孩子出生。我如何使用Union或其他方式来实现这一点?@BIY我怎么知道?您尚未提供有关表定义的任何详细信息。这些要求也不在您的问题上。如果这是您想要的,然后明确地告诉我们您需要的确切结果是什么,表中的列是什么在比例表中有金额字段:1个孩子的金额,2个孩子的金额,3个孩子的金额…我需要选择正确的金额,家庭表中有家庭地址,ChildFamily表中有孩子出生。@BIY Look,正确解释您需要的列并不难。例如,您将
命名为Child Birth
,这是一个日期吗?如果是,您将如何检索,如果有多个孩子,您希望每个孩子一列?,因为您还希望将孩子的总数作为一个数字column@BIY因此,您希望在结果中每个子级有一列设置。这就是为什么我要求你(不止一次)发布你想要的结果,这样我们就不必猜测你想要的是什么。这个要求不在你的问题上,它肯定会使这个问题与你发布的问题不同