【发布时间】:2018-08-21 17:39:52
【问题描述】:
我试图获得每个部分的总和,但由于某种原因,它没有给我这个代码的明确总和。它根据子查询中的记录数重复相同的部件号。我做错了什么?
Select Distinct IIF(x.omlPartID in ('10027','10028')
,x.omlPartID
,x.jmaPartID) as PartID
, Sum(Cast(Total_Quantity as INT)) as SumTot
From (
SELECT distinct SalesOrderLines.omlsalesorderID
, salesorderlines.omlSalesOrderLineID
, SalesOrderLines.omlPartID
, JobAssemblyMaterialCombo2 .jmaPartID
, (
IIF(rtrim(SalesOrderLines.omlPartID) in ('10027','10028')
, 1
, JobAssemblyMaterialCombo2.jmaQuantityPerParent
) * SalesOrderLines.omlOrderQuantity
) As 'Total_Quantity'
FROM M1_HB.dbo.SalesOrderLines SalesOrderLines
Left Outer Join M1_HB.dbo.SalesOrderJobLinks SalesOrderJobLinks
On SalesOrderLines.omlSalesOrderID = SalesOrderJobLinks.omjSalesOrderID
AND SalesOrderlines.omlSalesOrderLineID = SalesOrderJobLinks.omjSalesOrderLineID
Left Outer Join M1_HB.dbo.Jobs Jobs
on SalesOrderJobLinks.omjJobID = Jobs.jmpJobID
Left Outer Join M1_HB.dbo.JobAssemblyMaterialCombo2 JobAssemblyMaterialCombo2
On Jobs.jmpJobID = JobAssemblyMaterialCombo2. jmaJobID
Left Outer Join M1_HB.dbo.SalesOrders SalesOrders
On SalesOrderLines.omlSalesOrderID = SalesOrders.ompSalesOrderID
Left Outer Join M1_HB.dbo.Organizations Organizations
On SalesOrders.ompCustomerOrganizationID = Organizations.cmoOrganizationID
WHERE JobAssemblyMaterialCombo2 .jmaPartID in ('10027','10028')
or (
SalesOrderLines.omlPartID in ('10027','10028')
and
JobAssemblyMaterialCombo2 .jmaPartID is Null
)
) x
Group by x.omlPartID, x.jmaPartID
【问题讨论】:
-
更新您的问题添加适当的数据样本,您的实际结果和预期结果..
-
学习使用表别名。
-
如果您提供的只是一个损坏的、不可读的查询,您希望人们如何帮助您?首先告诉你想要完成什么。提供样本输入、预期输出、表关系。那么也许,人们会帮助你。读这个。 stackoverflow.com/help/how-to-ask
-
您使用的是哪个DBMS? “SQL”只是一种查询语言,而不是特定数据库产品的名称(标准 SQL 中没有
iif)。请为您正在使用的数据库产品添加标签