Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- USE [SIOEO_Dziekan]
- GO
- /****** Object: StoredProcedure [egzamin].[proc_CKEPytanieArkuszaEgzaminacyjnegoList] Script Date: 01.08.2018 10:24:25 ******/
- SET ANSI_NULLS ON
- GO
- SET QUOTED_IDENTIFIER ON
- GO
- -- =============================================
- -- Author: Piotr Dziekanowski
- -- Create date: 27.07.2018
- -- Description: Zwraca listę pytań dla podanego arkusza egzaminacyjnego
- -- WorkItems: #8811
- -- =============================================
- ALTER PROCEDURE [egzamin].[proc_CKEPytanieArkuszaEgzaminacyjnegoList]
- -- Add the parameters for the stored procedure here
- @ArkuszEgzaminacyjnyID INT
- AS
- BEGIN
- SET NOCOUNT ON;
- SELECT
- *
- ,(SELECT RazemPunktow FROM Pytania WHERE TypPytaniaID != 4)
- FROM
- (
- SELECT DISTINCT
- [PytanieArkuszaEgzaminacyjnego].ID
- ,[PytanieArkuszaEgzaminacyjnego].Numer
- ,[PytanieArkuszaEgzaminacyjnego].Etykieta
- ,[PytanieArkuszaEgzaminacyjnego].IleWymaganychOdpowiedzi
- ,[PytanieArkuszaEgzaminacyjnego].IdPytanieZalezne AS PytanieZalezneID
- ,(SELECT [PytanieArkuszaEgzaminacyjnego].Etykieta FROM [PytanieArkuszaEgzaminacyjnego] WHERE ID = [PytanieArkuszaEgzaminacyjnego].IdPytanieZalezne) AS PytanieZalezneEtykieta
- ,[TypPytania].ID AS TypPytaniaID
- ,[TypPytania].Kod AS TypPytaniaKod
- ,[TypPytania].Nazwa AS TypPytaniaNazwa
- ,STUFF
- (
- (
- SELECT DISTINCT
- N',' + [OdpowiedzNaPytanieArkuszaEgzaminacyjnego].Odpowiedz
- FROM
- [egzamin].[OdpowiedzNaPytanieArkuszaEgzaminacyjnego]
- WHERE
- [PytanieArkuszaEgzaminacyjnego].ID = [OdpowiedzNaPytanieArkuszaEgzaminacyjnego].IdPytanieArkuszaEgzaminacyjnego
- FOR XML PATH ('')
- ), 1, 1, ''
- ) AS Dystraktory
- ,STUFF
- (
- (
- SELECT DISTINCT
- N',' + [OdpowiedzNaPytanieArkuszaEgzaminacyjnego].Odpowiedz
- FROM
- [egzamin].[OdpowiedzNaPytanieArkuszaEgzaminacyjnego]
- WHERE
- [PytanieArkuszaEgzaminacyjnego].ID = [OdpowiedzNaPytanieArkuszaEgzaminacyjnego].IdPytanieArkuszaEgzaminacyjnego
- AND [OdpowiedzNaPytanieArkuszaEgzaminacyjnego].CzyPoprawnaOdpowiedz = 1
- FOR XML PATH ('')
- ), 1, 1, ''
- ) AS Poprawne
- ,STUFF
- (
- (
- SELECT DISTINCT
- N',' + CAST([OdpowiedzNaPytanieArkuszaEgzaminacyjnego].Punkty AS NVARCHAR)
- FROM
- [egzamin].[OdpowiedzNaPytanieArkuszaEgzaminacyjnego]
- WHERE
- [PytanieArkuszaEgzaminacyjnego].ID = [OdpowiedzNaPytanieArkuszaEgzaminacyjnego].IdPytanieArkuszaEgzaminacyjnego
- AND [OdpowiedzNaPytanieArkuszaEgzaminacyjnego].CzyPoprawnaOdpowiedz = 1
- FOR XML PATH ('')
- ), 1, 1, ''
- ) AS Punkty
- ,COALESCE(
- (SELECT SUM([OdpowiedzNaPytanieArkuszaEgzaminacyjnego].Punkty) FROM [OdpowiedzNaPytanieArkuszaEgzaminacyjnego] WHERE [OdpowiedzNaPytanieArkuszaEgzaminacyjnego].IdPytanieArkuszaEgzaminacyjnego = [PytanieArkuszaEgzaminacyjnego].ID AND ([PytanieArkuszaEgzaminacyjnego].IdTypPytania = 1 OR [PytanieArkuszaEgzaminacyjnego].IdTypPytania = 3))
- ,(SELECT MAX([OdpowiedzNaPytanieArkuszaEgzaminacyjnego].Punkty) FROM [OdpowiedzNaPytanieArkuszaEgzaminacyjnego] WHERE [OdpowiedzNaPytanieArkuszaEgzaminacyjnego].IdPytanieArkuszaEgzaminacyjnego = [PytanieArkuszaEgzaminacyjnego].ID AND ([PytanieArkuszaEgzaminacyjnego].IdTypPytania = 2 OR [PytanieArkuszaEgzaminacyjnego].IdTypPytania = 4))
- ) AS RazemPunktow
- ,[Egzamin].ID AS EgzaminID
- ,[Egzamin].MaksymalnaLiczbaPunkow AS EgzaminMaksymalnaLiczbaPunkow
- ,COUNT(*) OVER(PARTITION BY [PytanieArkuszaEgzaminacyjnego].ID) AS TotalCount
- FROM
- [egzamin].[PytanieArkuszaEgzaminacyjnego]
- LEFT JOIN [egzamin].[OdpowiedzNaPytanieArkuszaEgzaminacyjnego] ON [PytanieArkuszaEgzaminacyjnego].ID = [OdpowiedzNaPytanieArkuszaEgzaminacyjnego].IdPytanieArkuszaEgzaminacyjnego
- INNER JOIN [egzamin].[TypPytania] ON [PytanieArkuszaEgzaminacyjnego].IdTypPytania = [TypPytania].ID
- INNER JOIN [egzamin].[WzorzecArkuszaEgzaminacyjnego] ON [PytanieArkuszaEgzaminacyjnego].IdWzorzecArkuszaEgzaminacyjnego = [WzorzecArkuszaEgzaminacyjnego].ID
- INNER JOIN [egzamin].[ArkuszEgzaminacyjny] ON [WzorzecArkuszaEgzaminacyjnego].IdArkuszEgzaminacyjny = [ArkuszEgzaminacyjny].ID
- INNER JOIN [egzamin].[Egzamin] ON [ArkuszEgzaminacyjny].IdEgzamin = [Egzamin].ID
- WHERE
- [ArkuszEgzaminacyjny].ID = @ArkuszEgzaminacyjnyID
- AND [PytanieArkuszaEgzaminacyjnego].CzyUsuniety = 0
- AND [OdpowiedzNaPytanieArkuszaEgzaminacyjnego].CzyUsuniety = 0
- ) AS Pytania
- END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement