繁体   English   中英

根据表的另一个总和对表的列求和

[英]Sum a column of a table based on another sum of a table

我有这个代码:

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

我想从总金额列中汇总发票总金额列。 当我运行上面的查询时,我得到一堆奇怪的总数。 发票总数应该是每行的一个数字,并且与rebateinvoiceid一致,因为它的分组,对吗?

你可以做另一个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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM