Advertisement
Guest User

Untitled

a guest
Jun 25th, 2019
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
T-SQL 3.03 KB | None | 0 0
  1. with cte1 as(
  2.                     select
  3.                         ROW_NUMBER() OVER (PARTITION BY o.IdOsoba, o.Nazwisko, o.Imie1, o.Plec, s.Nr_Indeksu, wn.KontoWyplat, w.Miesiec
  4.                         ORDER BY o.IdOsoba, o.Nazwisko, o.Imie1, o.Plec, s.Nr_Indeksu, wn.KontoWyplat, w.Miesiec) EntryId,
  5.                         RANK() OVER (ORDER BY o.IdOsoba, o.Nazwisko, o.Imie1, o.Plec, s.Nr_Indeksu, wn.KontoWyplat, w.Miesiec) RowId,
  6.                             o.IdOsoba IdStudent, o.Nazwisko LastName, o.Imie1 FirstName, o.Plec Sex, s.Nr_Indeksu IndexNumber, wn.KontoWyplat BankAccount,
  7.                             w.Miesiec MonthPayment, SUM(w.Kwota) Amount, rs.Nazwa ScholarshipType
  8.                     from Styp_Wyplata w
  9.                     join Styp_StypendiumStudenta sst on sst.IdStypendiumStudenta = w.IdStypendiumStudenta
  10.                     join Styp_Wniosek wn on wn.IdWniosek = sst.IdStypendiumStudenta
  11.                     join Styp_PodkategoriaStypendium ps on ps.IdPodkategoriaStypendium = wn.IdPodkategoriaStypendium
  12.                     join Styp_RodzajStypendium rs on rs.IdRodzajStypendium = ps.IdRodzajStypendium
  13.                     join Student s on s.IdOsoba = wn.IdStudent
  14.                     join Osoba o on o.IdOsoba = s.IdOsoba
  15.                     WHERE EXISTS(SELECT s2.IdWydzial FROM dbo.Student_Status ss
  16.                     JOIN dbo.Studia s2 ON ss.IdStudia = s2.IdStudia
  17.                     WHERE ss.IdOsoba=s.IdOsoba AND s2.IdWydzial IN (1,2,3)) and rs.IdRodzajStypendium in (1,2,3) and
  18.                     (DATEFROMPARTS( w.Rok, w.Miesiec, 1) between  DATEFROMPARTS(2018, 10, 1) and EOMONTH(DATEFROMPARTS(2019, 7, 1)))
  19.                     group by o.IdOsoba, o.Nazwisko, o.Imie1, o.Plec, s.Nr_Indeksu, wn.IdWniosek, wn.KontoWyplat, w.Miesiec, w.Rok, rs.Nazwa
  20.                      
  21.                 ),
  22.                 no_sum as(
  23.                     select IdStudent, IndexNumber, FirstName, LastName, Sex, MonthPayment, BankAccount,
  24.                     ISNULL((SELECT c2.Amount FROM cte1 c2 WHERE c2.RowId=c.RowId AND c2.ScholarshipType='Socjalne'),0) Social,
  25.                     ISNULL((SELECT c2.Amount FROM cte1 c2 WHERE c2.RowId=c.RowId AND c2.ScholarshipType='Specjalne'),0) Special,
  26.                     ISNULL((SELECT c2.Amount FROM cte1 c2 WHERE c2.RowId=c.RowId AND c2.ScholarshipType='Rektorskie'),0) Deans from cte1 c
  27.                     CROSS APPLY [dbo].[fn_get_StatusStudenta](c.IdStudent) fn
  28.                     WHERE c.EntryId=1 AND fn.IdStatus IN (1, 2, 10) AND
  29.                     EXISTS(SELECT * FROM dbo.Student_Status ss
  30.                     JOIN dbo.Status s ON ss.IdStatus = s.IdStatus
  31.                     WHERE ss.IdOsoba=c.IdStudent AND s.Nazwa IN ('Student', 'Student na wymianie', 'Urlop') AND ss.OdDnia>='2007-10-01' AND ss.OdDnia<=EOMONTH(DATEFROMPARTS(2019, 7, 1)))
  32.                 )
  33.                 select IdStudent, IndexNumber, FirstName, LastName, Sex, MonthPayment, BankAccount, Social, Special, Deans, Social+Special+Deans Amount
  34.                 from no_sum
  35.                 order by IdStudent, MonthPayment;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement