SQL查询和唯一记录

SQL查询和唯一记录,sql,sql-server,tsql,sum,Sql,Sql Server,Tsql,Sum,我试图对一辆正在销售的汽车的一段时间内的所有销售额进行求和。问题是,每一个售出的产品都是一行,包括金额和价格,以及账单和账单编号的总和 所以我有两个选择:将曾经售出的产品数量乘以价格,然后求和。或者把账单去掉两行,然后加起来。我选择了第二个选项 所以现在我有一个[位置代码](销售车辆),[账单编号]和一个[总价] 所以我得到: 0001 0001/00277343 10,26000000000000000000 0001 0001/00277343 10,2600000000

我试图对一辆正在销售的汽车的一段时间内的所有销售额进行求和。问题是,每一个售出的产品都是一行,包括金额和价格,以及账单和账单编号的总和

所以我有两个选择:将曾经售出的产品数量乘以价格,然后求和。或者把账单去掉两行,然后加起来。我选择了第二个选项

所以现在我有一个[位置代码](销售车辆),[账单编号]和一个[总价]

所以我得到:

0001    0001/00277343   10,26000000000000000000
0001    0001/00277343   10,26000000000000000000
0001    0001/00277343   10,26000000000000000000
0001    0001/00277343   10,26000000000000000000
0001    0001/00277345   10,33000000000000000000
0001    0001/00277345   10,33000000000000000000
0001    0001/00277345   10,33000000000000000000
0001    0001/00277347   24,35000000000000000000
0001    0001/00277348   30,31000000000000000000
0001    0001/00277348   30,31000000000000000000
0001    0001/00277349   2,69000000000000000000
正如您看到的,有两个条目,因为在一张账单上有多个条目。现在我只想求出唯一的价格,这样我就可以

0001 1822,50

此时此刻,我只知道:

select [Location Code], [Bill No_] , Price from [Item Ledger Entry] 
where [Location Code] = '0001' and [Document Date] = '01.04.2015'
我试了几次,但没有一次奏效。最佳结果给出了这一点,但不是求和

select distinct[Bill No_], [Location Code] , Price from [Item Ledger Entry] 
where [Location Code] = '0001' and [Document Date] = '01.04.2015'

我想你正在寻找这个:

SELECT [Location Code], [Bill No_], SUM(Price) AS Price
FROM (SELECT  DISTINCT [Location Code], [Bill No_] , Price from [Item Ledger Entry] 
      WHERE [Location Code] = '0001' and [Document Date] = '01.04.2015') t
GROUP BY [Location Code], [Bill No_]

你从哪里得到的
1822,50
?你确定把所有“不同”的价格加起来是正确的吗?如果更多的汽车在一张账单上出售,并且两辆车的价格相同,那么只考虑一次金额是不正确的,我认为。您使用的是哪种dbms?我已经尝试过了,但是我分别得到了每张账单(105行),而不是一天的总和(1行)。我在2012 SQL server上使用Toad for SQL。我不想计算不同的价格,只想计算不同的账单。几乎可以,但我让它按照我想要的方式工作。感谢:选择[位置代码],总和(价格)作为价格来源(选择不同的[位置代码],[账单编号],价格来源于[项目分类账分录],其中[位置代码]='0001'和[单据日期]='01.04.2015')按[位置代码]分组
SELECT [Location Code], [Bill No_], SUM(Price) AS Price
FROM (SELECT  DISTINCT [Location Code], [Bill No_] , Price from [Item Ledger Entry] 
      WHERE [Location Code] = '0001' and [Document Date] = '01.04.2015') t
GROUP BY [Location Code], [Bill No_]