Advertisement
Guest User

Untitled

a guest
Jul 23rd, 2019
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
T-SQL 4.83 KB | None | 0 0
  1. DECLARE
  2.     @SesjaEgzaminacyjnaID INT = 40,
  3.     @RodzajDeklaracjiID INT = 2,
  4.     @OkeID INT = 3,
  5.     @SystemNazwa NVARCHAR(100) = 'sioeo',
  6.     @PlacowkaKod NVARCHAR(12) = NULL
  7.  
  8. BEGIN
  9.     SET NOCOUNT ON;
  10.  
  11.     ;WITH CTE_MAIN AS (
  12.         SELECT
  13.             p.Nazwa AS PodmiotNazwa,
  14.             '' AS PodmiotAdres, -- nieuzywane w sioeo
  15.             p.Rspo AS PodmiotRspo,
  16.             p.IdTypPlacowki AS PodmiotTypPlacowkiID,
  17.             p.Kod AS PodmiotKod,
  18.             doz.ID AS ZdajacyID,
  19.             doz.Imie AS ZdajacyImie,
  20.             doz.DrugieImie AS ZdajacyImieDrugie,
  21.             doz.Nazwisko AS ZdajacyNazwisko,
  22.             doz.Pesel AS ZdajacyPesel,
  23.             doz.IdTypDokumentuTozsamosci AS ZdajacyDokumentTypID,
  24.             doz.NumerDokumentu AS ZdajacyNumerDokumentu,
  25.             doz.DataUrodzenia AS ZdajacyDataUrodzenia,
  26.             doz.MiejsceUrodzenia AS ZdajacyMiejsceUrodzenia,
  27.             doz.Plec AS ZdajacyPlec,
  28.             wez.ID AS WynikID,
  29.             te.IdTypJezykaZdawania AS WynikTypJezykaZdawaniaID,
  30.             te.IdTypFormyZdawania AS WynikTypFormyZdawaniaID,
  31.             te.IdTypPoziomu AS WynikPoziomZdawaniaID,
  32.             te.Kod AS WynikKod,
  33.             wez.IdStanZdawaniaEgzaminu AS WynikStanZdawaniaEgzaminuID,
  34.             wez.IdStanWyniku AS WynikStanWynikuID,
  35.             ae.MaksymalnaLiczbaPunktow AS WynikMaxPunkty,
  36.             wez.WynikProcentowy AS WynikProcent,
  37.             wez.Wynik WynikUzyskanePunkty,
  38.             wez.Centyl AS WynikCentyle,
  39.             1 AS WynikCzyObowiazkowy, -- nieuzywane w sioeo
  40.             ae.KodArkusza AS WynikArkuszaKodArkusza
  41.         FROM
  42.             wynik.WynikDeklaracjiZdajacego wdz
  43.             INNER JOIN podmiot.Placowka p ON wdz.IdPlacowka = p.ID
  44.             INNER JOIN deklaracja.DaneOsoboweZdajacego doz ON wdz.IdDaneOsoboweZdajacego = doz.ID
  45.             INNER JOIN wynik.WynikEgzaminuZdajacego wez ON wez.IdWynikDeklaracjiZdajacego = wdz.ID
  46.             INNER JOIN egzamin.Egzamin e ON wez.IdEgzamin = e.ID
  47.             INNER JOIN egzamin.TypEgzaminu te ON te.ID = e.IdTypEgzaminu
  48.             /*INNER*/ LEFT JOIN wynik.WynikArkuszaEgzaminacyjnego wae -- docelowo inner join
  49.                 INNER JOIN egzamin.ArkuszEgzaminacyjny ae ON ae.ID = wae.IdArkuszEgzaminacyjny
  50.                 ON wae.IdWynikEgzaminuZdajacego = wez.ID AND ae.IdEgzamin = e.ID
  51.         WHERE
  52.             wdz.IdSesjaEgzaminacyjna = @SesjaEgzaminacyjnaID
  53.             AND wdz.IdTypZgloszeniaDlaRozporzadzenia = @RodzajDeklaracjiID
  54.             AND (@PlacowkaKod IS NULL OR p.Kod LIKE @PlacowkaKod + N'%')
  55.     )
  56.     SELECT
  57.         @SystemNazwa AS 'systemNazwa',
  58.         @OkeID AS 'okeId',
  59.         @SesjaEgzaminacyjnaID AS 'sesjaId',
  60.         @RodzajDeklaracjiID AS 'rodzajDeklaracjiId',
  61.         (
  62.             SELECT
  63.                 PodmiotNazwa AS 'nazwa',
  64.                 PodmiotAdres AS 'adres',
  65.                 PodmiotRspo AS 'rspo',
  66.                 PodmiotTypPlacowkiID AS 'typPlacowkiId',
  67.                 PodmiotKod AS 'kod',
  68.                 (
  69.                     SELECT
  70.                         ZdajacyID AS 'id',
  71.                         ZdajacyImie AS 'imie',
  72.                         ZdajacyImieDrugie AS 'imieDrugie',
  73.                         ZdajacyNazwisko AS 'nazwisko',
  74.                         ZdajacyPesel AS 'pesel',
  75.                         ZdajacyDokumentTypID AS 'dokumentTypId',
  76.                         ZdajacyNumerDokumentu AS 'dokumentNumer',
  77.                         ZdajacyDataUrodzenia AS 'dataUrodzenia',
  78.                         ZdajacyMiejsceUrodzenia AS 'miejsceUrodzenia',
  79.                         ZdajacyPlec AS 'plec',
  80.                         (
  81.                             SELECT
  82.                                 WynikTypJezykaZdawaniaID AS 'typJezykaZdawaniaId',
  83.                                 WynikTypFormyZdawaniaID AS 'formaZdawaniaId',
  84.                                 WynikPoziomZdawaniaID AS 'poziomZdawaniaId',
  85.                                 WynikKod AS 'kodEgzaminu',
  86.                                 WynikStanZdawaniaEgzaminuID AS 'stanZdawaniaEgzaminuId',
  87.                                 WynikStanWynikuID AS 'stanWynikuId',
  88.                                 WynikMaxPunkty AS 'maxPunkty',
  89.                                 WynikProcent AS 'procent',
  90.                                 WynikUzyskanePunkty AS 'uzyskanePunkty',
  91.                                 WynikCentyle AS 'centyle',
  92.                                 WynikCzyObowiazkowy AS 'obowiazkowy',
  93.                                 (
  94.                                     SELECT
  95.                                         WynikArkuszaKodArkusza AS 'kodArkusza'
  96.                                     FROM
  97.                                         CTE_MAIN wynikArkusza
  98.                                     WHERE
  99.                                         wynikArkusza.WynikID = wynik.WynikID
  100.                                     GROUP BY
  101.                                         WynikArkuszaKodArkusza
  102.                                 ) AS 'kodyArkusza'
  103.                             FROM
  104.                                 CTE_MAIN wynik
  105.                             WHERE
  106.                                 wynik.ZdajacyID = zdajacy.ZdajacyID
  107.                             GROUP BY
  108.                                 WynikID,
  109.                                 WynikTypJezykaZdawaniaID,
  110.                                 WynikTypFormyZdawaniaID,
  111.                                 WynikPoziomZdawaniaID,
  112.                                 WynikKod,
  113.                                 WynikStanZdawaniaEgzaminuID,
  114.                                 WynikStanWynikuID,
  115.                                 WynikMaxPunkty,
  116.                                 WynikProcent,
  117.                                 WynikUzyskanePunkty,
  118.                                 WynikCentyle,
  119.                                 WynikCzyObowiazkowy
  120.                             FOR XML PATH ('wynik'), TYPE
  121.                         ) AS 'wyniki'
  122.                     FROM
  123.                         CTE_MAIN zdajacy
  124.                     WHERE
  125.                         zdajacy.PodmiotKod = podmiot.PodmiotKod
  126.                     GROUP BY
  127.                         ZdajacyID,
  128.                         ZdajacyImie,
  129.                         ZdajacyImieDrugie,
  130.                         ZdajacyNazwisko,
  131.                         ZdajacyPesel,
  132.                         ZdajacyDokumentTypID,
  133.                         ZdajacyNumerDokumentu,
  134.                         ZdajacyDataUrodzenia,
  135.                         ZdajacyMiejsceUrodzenia,
  136.                         ZdajacyPlec
  137.                     FOR XML PATH ('zdajacy'), TYPE
  138.                 ) AS 'wszyscyzdajacy'
  139.             FROM CTE_MAIN podmiot
  140.             GROUP BY
  141.                 PodmiotNazwa,
  142.                 PodmiotAdres,
  143.                 PodmiotRspo,
  144.                 PodmiotTypPlacowkiID,
  145.                 PodmiotKod
  146.             FOR XML PATH ('podmiot'), TYPE
  147.         ) AS 'podmioty'
  148.     FOR XML PATH (''), ROOT('egzaminMaturalny')
  149. END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement