Sie die Frage nicht angegeben haben, aber ich denke, Sie mit einer Spalte einige Kalender-Tabelle haben die Gesamtzahl der Tage im Monat darstellt. Sie brauchen nur den zweiten Teil. Ändern Sie einfach die Tabellen- und Spaltennamen in die entsprechenden Werte.
Daten Initialisierung:
DECLARE @Time TABLE
(
TheYear INT ,
MonthNumber VARCHAR(MAX) ,
DayNumber INT ,
AmountDayOfMonth INT
);
WITH cte
AS (SELECT CAST('20160101' AS DATE) AS dt
UNION ALL
SELECT DATEADD(dd, 1, dt)
FROM cte
WHERE DATEADD(dd, 1, dt) < '20170101'
)
INSERT INTO @Time
(TheYear ,
MonthNumber ,
DayNumber
)
SELECT YEAR(dt) ,
MONTH(dt) ,
DAY(dt)
FROM cte
OPTION (MAXRECURSION 0);
Update-Anweisung benötigen Sie:
WITH upd
AS (SELECT * ,
COUNT(*) OVER (PARTITION BY TheYear, MonthNumber) AS cnt
FROM @Time
)
UPDATE upd
SET AmountDayOfMonth = cnt
SELECT *
FROM @Time
MS SQL Server 2014 – Andrey
Ich bin nicht sicher, ob ich verstehe Ihre Frage. Können Sie Ihre Frage so bearbeiten, dass sie einige Beispieldaten und die gewünschte Ausgabe enthält? –