Sql 语句之间的多个

Sql 语句之间的多个,sql,sum,between,Sql,Sum,Between,我是一名学生开发人员,目前正在学习SQL课程。我目前正试图从一个表中检索几组行的总和。我对SQL开发非常陌生,我不太确定以下场景中的问题是什么。我有一个很大的表,我想从中选择特定的行,然后添加balance列 以下内容不会在结果中显示任何数据,我也不太确定原因。我有一种预感,between语句只能在每个表中使用一次,但也许我错了 Select Description, SUM(Balance) AS Total_Balance FROM Chart_Of_Accounts WHERE (Acco

我是一名学生开发人员,目前正在学习SQL课程。我目前正试图从一个表中检索几组行的总和。我对SQL开发非常陌生,我不太确定以下场景中的问题是什么。我有一个很大的表,我想从中选择特定的行,然后添加balance列

以下内容不会在结果中显示任何数据,我也不太确定原因。我有一种预感,between语句只能在每个表中使用一次,但也许我错了

Select Description, SUM(Balance) AS Total_Balance
FROM Chart_Of_Accounts
WHERE (Account BETWEEN ('400401') AND ('400407')) 
AND (Account BETWEEN ('440094') AND ('440100')) 
AND (Account BETWEEN ('450094') AND ('450100'))
GROUP BY Description, Balance 
根据(Richard aka cyberkiwi)的要求编辑2012年1月10日

我拥有的

Set 1
|Account        |Description         |Balance
|4004xx         |Red Wine            |$2361.23
|4004xx         |White Wine          |$3620.23
|4004xx         |Rice Wine           |$1223.23

Set 2
|Account        |Description         |Balance
|4400xx         |Red Wine            |$4361.23
|4400xx         |White Wine          |$3260.23
|4400xx         |Rice Wine           |$223.23

Set 3
|Account        |Description         |Balance
|4500xx         |Red Wine            |$1361.23
|4500xx         |White Wine          |$1620.23
|4500xx         |Rice Wine           |$1223.23
Total
|Description         |Total_Balance
|Red Wine            |$8083.69
|White Wine          |$8500.69
|Rice Wine           |$2669.69
我努力实现的结果

Set 1
|Account        |Description         |Balance
|4004xx         |Red Wine            |$2361.23
|4004xx         |White Wine          |$3620.23
|4004xx         |Rice Wine           |$1223.23

Set 2
|Account        |Description         |Balance
|4400xx         |Red Wine            |$4361.23
|4400xx         |White Wine          |$3260.23
|4400xx         |Rice Wine           |$223.23

Set 3
|Account        |Description         |Balance
|4500xx         |Red Wine            |$1361.23
|4500xx         |White Wine          |$1620.23
|4500xx         |Rice Wine           |$1223.23
Total
|Description         |Total_Balance
|Red Wine            |$8083.69
|White Wine          |$8500.69
|Rice Wine           |$2669.69

谢谢你阅读我的帖子!我也愿意听取SQL开发方面的任何建议,非常感谢您的反馈。

使用ORs而不是ANDs
你的意思是,给我结果,在A和B之间,
在C和D之间,等等

  SELECT Description, SUM(Balance) AS Total_Balance
    FROM Chart_Of_Accounts
   WHERE (Account BETWEEN '400401' AND '400407') 
      OR (Account BETWEEN '440094' AND '440100') 
      OR (Account BETWEEN '450094' AND '450100')
GROUP BY Description

我去掉了多余的括号,但你甚至可以去掉剩下的括号,因为ORs是在ANDs之后处理的。参见:

如果你的名字以W开头,你的字母能在a-DF-MU-Z之间吗?当然不是

但是,它可以介于A-DF-MU-Z之间


同样的事情也适用于账号

我认为你的问题的一部分(除了它的用途和应该在哪里,或者,正如理查德奇维亲切地指出的那样)是,你正在根据描述和平衡进行分组。您应该只按描述分组,因为您正在尝试对每个描述的余额求和。如果您对余额的每个唯一值感兴趣,并且对每个唯一余额的其他字段上的聚合函数(SUM()、AVG()、STDEV()、…)感兴趣,则可以按余额分组。

我理解您的意思,但我真正想做的是合并(求和)这些记录(行)的余额使用A-D、H-S和U-X之间的帐号。使用或时,由于A-D的顺序出现,我仅获得A-D。谢谢你的快速回答!对不起,我的白话还在学习中。你能用一些示例结果编辑这个问题吗?您想按描述或帐户分组吗?你想要3行吗,A-d、H-S、U-X每组一行,这意味着按帐户分组,而不是按描述分组?当然!我很乐意为你编辑我的问题!在我查询的这个表中,我只有四列。账户(保存账号)、描述(保存产品名称)、简短描述(保存账户类型)和余额(保存货币价值)。我要做的是从这个表中抓取几个账户,并将它们的余额加在一起。我试图使用group by功能将相同的产品分组在一起,因为每个位置的这些帐户中有相同的6个产品。