Ich habe eine Abfrage, die einige Inventarergebnisse liefert. Die Abfrage schaut auf die Artikelnummer und mit einem Join zu aa Bestandstabelle und ruft die Menge auf Lager (InStock)SQL-Reduzierungsfeld um den Betrag des vorherigen Datensatzfelds
SUM(di.[Count])as Requested,
ISNULL(mt.qty,0) as InStock,
Was bekomme ich dann ein Ergebnis wie folgt aus:
Was aber korrekt ist, was ich gerne tun kann, ist die InStock der Betrag um den Betrag aus dem vorherigen Datensatz zu verstoßen.
Was ich habe versucht, und aus offensichtlichen Grund, warum dies nicht funktioniert:
(ISNULL(mt.qty, 0) - SUM(di.[Count])) as Inventory,
Ich suche in so etwas wie dieses, aber nie Partition verwendet oder Over vor:
sum(mt.qty) over (order by di.InventoryNumber asc) as Inventory
unten ist meine vollständige Abfrage:
SELECT ISNUll(mt.cart,'Not Assigned') as Cart,
c.ClientName AS Client,
di.InventoryNumber AS IMS_Number,
SUM(di.[Count])as Requested,
ISNULL(mt.qty,0) as InStock,
(ISNULL(mt.qty, 0) - SUM(di.[Count])) as Inventory,
CASE di.IsManual
WHEN 0 THEN 'Auto'
WHEN 1 THEN 'Manual'
END As Operation,
CASE WHEN mt.item IS NULL THEN 'New' ELSE 'In Stock' END as Availability,
CASE jl.LocationId
WHEN 0 THEN 'Both'
WHEN 1 THEN 'Bond'
WHEN 2 THEN 'Woodlands'
END AS Location,
CAST (di.ItemDescription AS TEXT) as Descriptions,
di.ItemType AS [Type]
FROM linwdc1f.eFulfillment2.dbo.DailyInventoryView di
INNER JOIN linwdc1f.eFulfillment2.dbo.JobConfigs jc ON di.JobName=jc.JobName
INNER JOIN linwdc1f.eFulfillment2.dbo.Clients c ON di.ClientId=c.ClientId
INNER JOIN linwdc1f.eFulfillment2.dbo.JobLocations jl ON jl.JobName = di.JobName AND jl.LocationId=2
LEFT OUTER JOIN linwdc1f.eFulfillment2.dbo.printjobs pj on pj.JobName =di.JobName
LEFT OUTER JOIN linwdc1f.eFulfillment2.dbo.PrintComponents pc on pc.id = pj.PrintComponentId
LEFT OUTER JOIN linwdc1f.eFulfillment2.dbo.ProjectJobs prj on prj.id = pc.ProjectJobId
LEFT OUTER JOIN Master mt on di.InventoryNumber = mt.item
WHERE di.JobDate BETWEEN '2016-08-08' AND '2016-08-08' AND prj.ProjectJobName IS NULL
GROUP BY c.ClientName, mt.cart, di.InventoryNumber,c.ClientName ,mt.qty,mt.item,jl.LocationId,di.ItemDescription,di.ItemType,di.IsManual
Order by di.InventoryNumber,c.ClientName, mt.cart
Haben Sie Lag erforscht/Blei? – dfundako
Welche Version von SQL-Server haben Sie? –
Um Verzögerungen zu nutzen, brauchen Sie etwas, um diese Daten zu bestellen. Verfügen Sie über ein Bestell-ID-Feld, um die von Ihnen bereitgestellten Beispieldaten zu bestellen? –