Advertisement
DawidS28

prog

Jan 10th, 2016
160
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
T-SQL 2.73 KB | None | 0 0
  1. select n.id, n.kwota, n.termin, w.id, w.kwota, w.data_wplaty, s.dzien, s.stawka,
  2. IIF(w.data_wplaty <= n.termin, 0, s.stawka * 1) as rzecz_stawka,
  3. ROW_NUMBER() OVER(partition by w.id order by s.dzien) as FrameLineNum,
  4. --COUNT(*) OVER(partition by w.id) as TotalFrameLines,
  5. (SELECT * FROM PoprzedniaWplata(n.id, w.id)) as poprzednia_wplata,
  6. (SELECT * FROM PoczatekZakresu(n.id, w.id, s.dzien)) as data_od,
  7. (SELECT * FROM KoniecZakresu(n.id, w.id, s.dzien)) as data_do,
  8. (SELECT * FROM RoznicaDniZakresu(n.id, w.id, s.dzien)) as roznica_dni,
  9. (SELECT * FROM RoznicaDniZakresu(n.id, w.id, s.dzien)) * IIF(w.data_wplaty <= n.termin, 0, s.stawka * 1)/365/100 as wsp_odsetek_za_okres,
  10. (SELECT * FROM CzyKoniecWplaty(n.id, w.id, s.dzien)) as czy_koniec_wplaty,
  11. (SELECT * FROM OdsetkiPoWplacie(n.id, w.id, s.dzien)) as odsetki_po_wplacie,
  12. (SELECT * FROM CzyPierwszaWplata(n.id, w.id)) as czy_pierwsza_wplata,
  13. (SELECT * FROM Obciazenia(n.id, w.id, s.dzien)) as obciazenia,
  14. (SELECT * FROM Uznania(n.id, w.id, s.dzien)) as uznania,
  15. (SELECT * FROM Obciazenia(n.id, w.id, s.dzien)) - (SELECT * FROM Uznania(n.id, w.id, s.dzien)) as delta_bez_ods,
  16. SUM((SELECT * FROM Obciazenia(n.id, w.id, s.dzien)) - (SELECT * FROM Uznania(n.id, w.id, s.dzien)))
  17.     OVER (ORDER BY w.data_wplaty, s.dzien) as sum_delta_bez_ods,
  18.  
  19. (
  20. (
  21. SUM
  22. ((SELECT * FROM Obciazenia(n.id, w.id, s.dzien)) - (SELECT * FROM Uznania(n.id, w.id, s.dzien)))
  23.     OVER (ORDER BY w.data_wplaty, s.dzien)
  24.  
  25. ) + (SELECT * FROM Uznania(n.id, w.id, s.dzien))
  26. ) * (1 + (SELECT * FROM OdsetkiPoWplacie(n.id, w.id, s.dzien)))
  27. as suma_delta_z_ods
  28.  
  29.  
  30.  
  31.  
  32.  
  33.  
  34.  
  35. from naleznosci as n
  36. inner join wplaty as w
  37. on n.id = w.naleznosci_id
  38. inner join stawki as s
  39. on ( s.dzien < w.data_wplaty AND s.dzien >=
  40. (
  41.     select top 1 * from
  42.     (
  43.         select termin from naleznosci as nn
  44.         where nn.id = n.id
  45.             -- AND termin < ( select www.data_wplaty from wplaty as www where www.id = w.id )
  46.        
  47.         union
  48.    
  49.         select ww.data_wplaty from wplaty as ww
  50.         where ww.data_wplaty < ( select www.data_wplaty from wplaty as www where www.id = w.id )
  51.             AND ww.naleznosci_id = n.id
  52.  
  53.     ) as squery
  54.     order by termin desc
  55. ) ) OR s.dzien = -- wyznaczanie pierwszej obowiazujacej stawki po poprzedniej wplacie
  56. (
  57.     select top 1 ss.dzien from stawki as ss
  58.     where ss.dzien <=
  59.     (
  60.         select top 1 * from
  61.         (
  62.             select termin from naleznosci as nn
  63.             where nn.id = n.id
  64.                 -- AND termin < ( select www.data_wplaty from wplaty as www where www.id = w.id )
  65.        
  66.             union
  67.    
  68.             select ww.data_wplaty from wplaty as ww
  69.             where ww.data_wplaty < ( select www.data_wplaty from wplaty as www where www.id = w.id )
  70.                 AND ww.naleznosci_id = n.id
  71.  
  72.         ) as squery
  73.         order by termin desc
  74.     )
  75.     order by ss.dzien desc
  76. )
  77.  
  78. where n.id = 28
  79. order by w.data_wplaty asc
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement