Advertisement
Guest User

Untitled

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