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_]