Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.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语法问题_Sql_Sql Server_Sql Server 2005_Syntax - Fatal编程技术网

获取和的SQL语法问题

获取和的SQL语法问题,sql,sql-server,sql-server-2005,syntax,Sql,Sql Server,Sql Server 2005,Syntax,好的,我有两张桌子 表IDAssoc有账单id,年份,区域id列 表Bill包含Bill\u id、年份、主id和到期金额列 我试图从账单表中获取IDAssoc表中每个相关区域ID的到期金额列的总和 我正在做一个select语句来选择总数并加入到账单ID中。我如何设置它,使其在assoc表的每个区域_id中的每个关联票据都有一行。可能有三个或四个bill_id与每个area_id关联,我需要对每个bill_id进行汇总并返回,以便在另一个语句中使用此select。我为area\u id设置了一个

好的,我有两张桌子

表IDAssoc有
账单id
年份
区域id

表Bill包含
Bill\u id
年份
主id
到期金额

我试图从账单表中获取IDAssoc表中每个相关区域ID的
到期金额
列的总和

我正在做一个select语句来选择总数并加入到账单ID中。我如何设置它,使其在assoc表的每个区域_id中的每个关联票据都有一行。可能有三个或四个bill_id与每个area_id关联,我需要对每个bill_id进行汇总并返回,以便在另一个语句中使用此select。我为area\u id设置了一个group by,但它仍然返回每一行,而不是为每个area\u id求和。我已经在where子句中指定了年份和main\u id,以返回我想要的数据,但我无法得到正确的总和。对不起,我还在学习,我不知道怎么做。谢谢

编辑-到目前为止,我尝试的查询基本上与下面发布的查询相同:

select a.area_id, sum(b.amount_due)
from IDAssoc a
inner join Bill b
on a.bill_id = b.bill_id
where Bill.year = 2006 and bill.bill_id = 11111
这些只是任意数字。 返回的数据如下所示: 到期金额-区域id .05 1003 .15 1003 .11 1003 65 1004 55 1004

我需要为每个区域返回一行,其中包含到期金额总和。区域id仅在assoc表中,而不在bill表中

select a.area_id, sum(b.amount_due)
from IDAssoc a
inner join Bill b
on a.bill_id = b.bill_id
where b.year = 2006 and b.bill_id = 11111
group by a.area_id
如果一个
IDAssoc
可以有多个或没有
Bill
,您可能需要将
内部联接更改为
左联接

select a.area_id, coalesce(sum(b.amount_due),0)
from IDAssoc a
left join Bill b
on a.bill_id = b.bill_id
where b.year = 2006 and b.bill_id = 11111
group by a.area_id
如果一个
IDAssoc
可以有多个或没有
Bill
,您可能需要将
内部联接更改为
左联接

select a.area_id, coalesce(sum(b.amount_due),0)
from IDAssoc a
left join Bill b
on a.bill_id = b.bill_id
where b.year = 2006 and b.bill_id = 11111
group by a.area_id

您缺少
分组依据
子句:

SELECT a.area_id, SUM(b.amount_due) TotalAmount
FROM IDAssoc a
LEFT JOIN Bill b
ON a.bill_id = b.bill_id
GROUP BY a.area_id

您缺少
分组依据
子句:

SELECT a.area_id, SUM(b.amount_due) TotalAmount
FROM IDAssoc a
LEFT JOIN Bill b
ON a.bill_id = b.bill_id
GROUP BY a.area_id

您可能想发布迄今为止尝试过的任何SQL。您能显示当前数据和所需结果吗?您可能想发布迄今为止尝试过的任何SQL。您能显示当前数据和所需结果吗?这仍然是返回单独的行,而不是汇总我的数据。它需要将每个区域_id中的所有账单相加,并将其与相关区域_id一起返回到一行中。例如,这是返回,4行任意金额和相同的区域id,当它应该是一行和一个区域id时。实际上,有4-5个不同的区域id需要将多个账单关联起来求和。左连接也没有帮助,当它们应该求和时,仍然为每个区域id返回多行。我的错误,我漏掉了
groupby
这一条款。虽然有效,但我的查询是正确的,但我将金额包含在groupby中,这把事情搞砸了。我仍在学习,这是有意义的,但感谢你帮助我达到这一点。它现在正在工作。它仍然返回单独的行,而不是汇总我的数据。它需要将每个区域_id中的所有账单相加,并将其与相关区域_id一起返回到一行中。例如,这是返回,4行任意金额和相同的区域id,当它应该是一行和一个区域id时。实际上,有4-5个不同的区域id需要将多个账单关联起来求和。左连接也没有帮助,当它们应该求和时,仍然为每个区域id返回多行。我的错误,我漏掉了
groupby
这一条款。虽然有效,但我的查询是正确的,但我将金额包含在groupby中,这把事情搞砸了。我仍在学习,这是有意义的,但感谢你帮助我达到这一点。它现在工作了。我有一个group by,我在group by中包括了到期金额以及区域id,这把它搞砸了,当我将其从group by中取出时,我的原始查询成功了。谢谢你的帮助,这样我就可以解决这个问题了。我有一个group by,我在group by中包括了应付金额以及区域id,这把事情搞砸了,当我根据我最初的查询将其从group by中取出时。谢谢你的帮助,这样我才能解决这个问题。