Из ваших снимков и описания, я думаю, вы можете использовать sum
с group by
, чтобы сделать это.
CREATE TABLE T(
BrokenQuantityAdjustment int,
BasePackCost float
);
insert into t values (-161.00,0.1615)
insert into t values (-89.00,0.1618)
insert into t values (250.00,0.1615)
insert into t values (-20.00,0.1616)
insert into t values (20.00,0.1616)
Запрос 1 :
SELECT SUM(BrokenQuantityAdjustment)result
FROM T
GROUP BY BasePackCost
Результаты :
| result |
|--------|
| 89 |
| 0 |
| -89 |
Вы можете попробовать это
;with cte as(
SELECT DISTINCT
a.SiteID,
a.SiteDescription,
iv.VendorNumber,
iv.VendorName,
i.StockNumber,
i.StockDescription, mrh.DateReceived, mrh.InvoiceDate,
mrh.InvoiceNumber,
mrh.DocumentNumber, mrh.ReceivingComment,
ia.UnitsPerPack,
mri.BrokenQuantityAdjusted,
ia.BrokenQuantityAdjustment,
ia.BasePackCost,
ia.Fee
FROM
AdmSites AS a
INNER JOIN
InvManualReceivingHeader AS mrh ON a.AdmSiteID = mrh.AdmSiteId
INNER JOIN
InvAdjustments AS ia ON a.AdmSiteID = ia.AdmSiteID
AND mrh.DateReceived = ia.AdjustmentDate
AND mrh.InvoiceNumber = ia.InvoiceNumber
INNER JOIN
InvItems AS i ON ia.InvItemID = i.InvItemID
INNER JOIN
InvVendors AS iv ON ia.InvVendorID = iv.InvVendorID
INNER JOIN
InvManualReceivingItemsAdjustments AS ria ON mrh.DateReceived = ria.DateReceived
CROSS JOIN
InvManualReceivingItems AS mri
WHERE
(mrh.InvoiceNumber = 'deleted')
)
select t1.*,t2.result
from cte t1 inner join (
SELECT SUM(BrokenQuantityAdjustment)result,BasePackCost
FROM cte
GROUP BY BasePackCost
) t2 on t1.BasePackCost = t2.BasePackCost