Skip to main content

Wciągnięcie modyfikacji danych w księgach rozliczeniowych - OPTIMA

DECLARE @Od    date = '2026-01-01';   -- okno akcji: początek roku
DECLARE @Do    date = '2026-07-08';   -- koniec półotwarty = do 7 lipca włącznie
DECLARE @StareOd date = '2025-01-01'; -- "stare księgi": rok 2025
DECLARE @StareDo date = '2026-01-01';

IF OBJECT_ID('tempdb..#baza') IS NOT NULL DROP TABLE #baza;

SELECT
    n.DeN_DeNId,
    n.DeN_Dziennik,
    n.DeN_NrDziennika,
    n.DeN_DataDok,
    n.DeN_Bufor,
    n.DeN_TS_Zal,
    n.DeN_TS_Mod,
    CASE WHEN n.DeN_TS_Zal >= @Od AND n.DeN_TS_Zal < @Do
         THEN 'Nowy wpis z datą 2025'
         ELSE 'Modyfikacja starego wpisu' END AS TypZmiany,
    CASE WHEN n.DeN_TS_Zal >= @Od AND n.DeN_TS_Zal < @Do
         THEN n.DeN_TS_Zal ELSE n.DeN_TS_Mod END AS AkcjaTS
INTO #baza
FROM CDN.DekretyNag n
WHERE n.DeN_DataDok >= @StareOd AND n.DeN_DataDok < @StareDo        -- księga 2025
  AND ( (n.DeN_TS_Zal >= @Od AND n.DeN_TS_Zal < @Do)
     OR (n.DeN_TS_Mod >= @Od AND n.DeN_TS_Mod < @Do) );             -- ruszone w 2026

-- 1) LISTA SZCZEGÓŁOWA
SELECT
    b.DeN_Dziennik,
    b.DeN_NrDziennika,
    b.DeN_DataDok  AS DataKsieg_2025,
    b.AkcjaTS      AS KiedyRuszone_2026,
    b.TypZmiany,
    b.DeN_Bufor,
    e.DeE_KontoWn,
    e.DeE_KontoMa,
    e.DeE_Kwota,
    e.DeE_Kategoria,
    e.DeE_Dokument
FROM #baza b
JOIN CDN.DekretyElem e ON e.DeE_DeNId = b.DeN_DeNId
ORDER BY b.AkcjaTS, b.DeN_Dziennik, b.DeN_NrDziennika, e.DeE_Lp;

-- 2) PODSUMOWANIE: ile dokumentów dot. 2025 ruszono w kolejnych miesiącach 2026
SELECT
    DATEFROMPARTS(YEAR(b.AkcjaTS), MONTH(b.AkcjaTS), 1) AS MiesiacAkcji,
    b.TypZmiany,
    COUNT(*)                                            AS LiczbaDokumentow,
    SUM(CASE WHEN b.DeN_Bufor = 1 THEN 1 ELSE 0 END)    AS WBuforze
FROM #baza b
GROUP BY DATEFROMPARTS(YEAR(b.AkcjaTS), MONTH(b.AkcjaTS), 1), b.TypZmiany
ORDER BY MiesiacAkcji, TypZmiany;

DROP TABLE #baza;

Wynik:

image.png