ich ein Stück Code benötigen, die durch Zeile Basen die aktuelle durchschnittliche Zeilen berechnet mit dem Empfang beginnen 1.berechnen Durchschnitt in einer rekursiven SQL Server ausgeführt wird CTE
Ich habe die untenstehende Tabelle, die Daten für die Abnahmemenge enthält, Preis usw. Ich muss den laufenden Durchschnitt (aktueller Durchschnitt) für jede Zeile beginnend mit dem Empfang 1 berechnen. Der Empfang ist immer einfach, weil der vorherige Preis seinen Durchschnitt nicht beeinflusst.
Sobald Sie Durchschnitt 1 (£ 75) haben, können Sie dies verwenden, um die folgenden Zeilen zu berechnen.
Ich habe den Beleg 2 manuell als "£ 79.4858" berechnet. Mir wurde empfohlen, den CTE rekursiv zu verwenden.
CREATE TABLE [dbo].[X]
(
[Item No_] [nvarchar](20) NOT NULL,
[ReceiptNo] [bigint] NULL,
[Sold] [decimal](38, 20) NULL,
[InventoryBalance] [decimal](38, 20) NOT NULL,
[PurchaseQty] [decimal](38, 20) NULL,
[IntakeSellingPrice] [decimal](38, 20) NULL,
[NewBalance] [decimal](38, 20) NULL,
[CurrentAverage] [numeric](2, 2) NOT NULL
) ON [PRIMARY]
GO
INSERT [dbo].[X] ([Item No_], [ReceiptNo], [Sold], [InventoryBalance], [PurchaseQty], [IntakeSellingPrice], [NewBalance], [CurrentAverage])
VALUES (N'2000045', 1, CAST(0.00000000000000000000 AS Decimal(38, 20)), CAST(0.00000000000000000000 AS Decimal(38, 20)), CAST(500.00000000000000000000 AS Decimal(38, 20)), CAST(75.00000000000000000000 AS Decimal(38, 20)), CAST(500.00000000000000000000 AS Decimal(38, 20)), CAST(0.00 AS Numeric(2, 2))),
(N'2000045', 2, CAST(250.00000000000000000000 AS Decimal(38, 20)), CAST(250.00000000000000000000 AS Decimal(38, 20)), CAST(2181.00000000000000000000 AS Decimal(38, 20)), CAST(80.00000000000000000000 AS Decimal(38, 20)), CAST(2431.00000000000000000000 AS Decimal(38, 20)), CAST(0.00 AS Numeric(2, 2))),
(N'2000045', 3, CAST(316.00000000000000000000 AS Decimal(38, 20)), CAST(2115.00000000000000000000 AS Decimal(38, 20)), CAST(10.00000000000000000000 AS Decimal(38, 20)), CAST(80.00000000000000000000 AS Decimal(38, 20)), CAST(2125.00000000000000000000 AS Decimal(38, 20)), CAST(0.00 AS Numeric(2, 2)))
Sie müssen den laufenden Mittelwert der 'IntakeSellingPrice' Spalte, Recht? – gotqn
Durchschnitt von was? Sie haben angegeben, dass die Spalte "Durchschnitt" für die Spalte "£ 79.48" und der Durchschnitt für "Recept" 1 "£ 75" ist. Welche Zahlen verwendest du dafür? Der Durchschnitt von £ 75.00 und £ 80.00 ist £ 77.50. – Larnu