-- skrypt do wykonania na bazie klienta UPDATE ee set ee.kategoria = ss.kategoria, ee.kwota= round(ss.kwota,2) FROM fk.TABEXC ee JOIN ( SELECT *, CAST([kwotaRKpodatEDPBad?] - RKpodatkowaCalculated as money) AS delTa, kategoria = IIF( IIF( sub.strona = 0,-1,1) * SIGN(sub.kursOtwarcia - sub.kurs) > 0,13,12), kwota= sub.RKpodatkowaCalculated from ( SELECT EDP.id, EDP.kategoria katPodatek, RK.kategoria katBilans, r.strona, t.kursOtwarcia, r.kurs, EDP.dokid, EDP.dataWpr , RK.kwota KwotaRKbilansowa , d.kwota kwotaRozK, t.rokPrzeliczenia, EDP.kwota 'kwotaRKpodatEDPBad?' -- wyliczone na nowo , '>>' as '>>' , ABS(( r.kwota_w* t.podstawaRKP / t.kwota_w * t.kursOtwarcia - -- r.kwota_w* t.podstawaRKP / t.kwota_w * r.kurs ) * SIGN( t.kursOtwarcia- r.kurs)) as RKpodatkowaCalculated ,( r.kwota_w* t.podstawaRKP / t.kwota_w * t.kursOtwarcia - r.kwota_w* t.podstawaRKP / t.kwota_w * r.kurs) AS [RKpodatkowaCalculated bez znaku] --, inaczej *(-1) to zależy raczej czy kursy wzrosły czy spadły , SIGN(t.kursOtwarcia- r.kurs) AS spadekKursu , corr = CAST(EDP.kwota - ABS(( r.kwota_w* t.podstawaRKP / t.kwota_w * t.kursOtwarcia - r.kwota_w* t.podstawaRKP / t.kwota_w * r.kurs)) as money) from fk.tabEXC EDP JOIN fk.dokumenty d ON d.id = EDP.dokid AND d.rokId = EDP.rokId JOIN fk.rozrachunki r ON d.idRozrach = r.id AND r.czyRozliczenie = 1 AND EDP.rokId = r.dokRok JOIN fk.fk_transakcje t ON r.transakcja = t.id -- roznica kursowa natywna jak weszła do EDP JOIN fk.tabEXC RK -- kwoty roznic kusowych bilansowych w EDP ON RK.dokid = EDP.dokid AND EDP.kategoria <> RK.kategoria WHERE EDP.kategoria in (12,13) AND t.waluta is not null AND EDP.id > 1 --9824 -- 12 i 13 to są podatkowe -- rozna od Calculated o 'grosz' AND EDP.datawpr > '2020-12-21' AND ABS( CAST(EDP.kwota - ABS(( r.kwota_w* t.podstawaRKP / t.kwota_w * t.kursOtwarcia - r.kwota_w* t.podstawaRKP / t.kwota_w * r.kurs)) as money) ) > .01 ) sub ) ss ON ss.id = ee.id