[英]Sum a column of a table based on another sum of a table
I have this code: 我有这个代码:
declare @ReportLines table
(RebateInvoiceID int,
RebateSetupID int ,
ShortItemNo float primary key(RebateInvoiceID,RebateSetupID,ShortItemNo),
TotalAmount float,
InvoiceTotal float,
TotalQuantity int )
insert @ReportLines
select
i.RebateInvoiceID
, coalesce(rs.WholesalerRebateSetupID,r.RebateSetupID)
, bl.ShortItemNo
, sum(round(r.Amount,2)) as TotalAmount
, sum(round(TotalAmount,2)) as InvoiceTotal
, sum(r.Quantity) TotalQuantity
from
@Invoices i
join RebateInvoices ri (nolock) on
ri.RebateInvoiceID=i.RebateInvoiceID
inner loop join Rebates r (nolock) on
r.RebateInvoiceID=i.RebateInvoiceID
join RebateSetup rs (nolock) on
rs.RebateSetupID=r.RebateSetupID
join BidLines bl (nolock) on
r.BidLineGuid=bl.BidLineGuid
join @Products p on
p.ShortItemNo=bl.ShortItemNo
left join ChargebackDetailHistory cd (nolock) on
r.DocumentBranchPlant = cd.DocumentBranchPlant
and r.DocumentNumber = cd.DocumentNumber
and r.DocumentType = cd.DocumentType
and r.LineNumber = cd.LineNumber
left join EDI.dbo.JDE_SaleDetail sd (nolock) on
r.DocumentBranchPlant = sd.BranchPlant
and r.DocumentNumber = sd.OrderNumber
and r.DocumentType = sd.OrderType
and r.LineNumber = sd.LineNumber
where
cd.InvoiceDate between @BeginDate and @EndDate
or sd.InvoiceDate between @BeginDate and @EndDate
group by
i.RebateInvoiceID
, coalesce(rs.WholesalerRebateSetupID,r.RebateSetupID)
, bl.ShortItemNo
I want to sum the invoice total amount column from the total amount column. 我想从总金额列中汇总发票总金额列。 When I run the above query i get a bunch of weird totals.
当我运行上面的查询时,我得到一堆奇怪的总数。 The invoice total should be one number for each row and be consistent with the rebateinvoiceid since thats what its grouped by, correct?
发票总数应该是每行的一个数字,并且与rebateinvoiceid一致,因为它的分组,对吗?
You can make another Nesty query... Something Like this: 你可以做另一个Nesty查询...像这样:
insert @ReportLines
select
RebateInvoiceID
, ID
, ShortItemNo
, TotalAmount
, sum(round(TotalAmount,2)) as InvoiceTotal
, TotalQuantity
from
(
select
i.RebateInvoiceID
, coalesce(rs.WholesalerRebateSetupID,r.RebateSetupID) as ID
, bl.ShortItemNo
, sum(round(r.Amount,2)) as TotalAmount
, sum(r.Quantity) TotalQuantity
from (... <the rest of your code here> ...)
) As MyTable
group by
RebateInvoiceID, ID, ShortItemNo, TotalAmount, TotalQuantity
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.