Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- USE [student]
- GO
- /****** Object: StoredProcedure [urb0061].[PrintReport] Script Date: 03/25/2012 11:03:17 ******/
- SET ANSI_NULLS ON
- GO
- SET QUOTED_IDENTIFIER ON
- GO
- ALTER procedure [urb0061].[PrintReport] (@p_pocatecniStanice varchar(60), @p_koncovaStanice varchar(60), @p_od time, @p_do time, @p_datum date)
- as
- begin
- declare @v_name varchar(20); -- NÁZEV VLAKU
- declare @v_sTime time; -- ČAS VYJEZDU
- declare @v_eTime time; -- ČAS PŘÍJEZDU
- declare @v_price float; -- CENA
- declare @v_idstation int; -- ID STANICE
- declare @v_idstation1 int; -- ID CÍLOVÉ STANICE
- Deallocate c_vlaky; -- PSALO MI TO ŽE, 'CURSOR EXIST' TAKŽE HO MUSÍM SMAZAT NA ZAČÁTKU VŽDYCKY NEVÍM PROČ (MS SUCKS)
- select @v_idstation = Station.idStation From Station Where Station.name = @p_pocatecniStanice; -- PŘEVADÍM SLOVNÍ NÁZEV STANICE NA JEJÍ ID
- select @v_idstation1 = Station.idStation From Station Where Station.name = @p_koncovaStanice; -- PŘEVADÍM SLOVNÍ NÁZEV CÍLOVÉ STANICE NA JEJÍ ID
- -- SPOJÍM 3 TABULKY A VYPODMÍNKUJU PODLE ČASŮ, DATUMU A STANIC
- declare c_vlaky cursor for select Train.name, Train.startTime, Train.endTime, Train.price from Train
- join Station on Train.idStation = Station.idStation
- join TrainRide on Train.idTrain = TrainRide.idTrain
- where Train.startTime > @p_od and Train.endTime < @p_do
- and TrainRide.rideDate = @p_datum
- and Train.idStation = @v_idstation and Train.idStation1 = @v_idstation1;
- declare @v_pocetvlaku int; -- DRŽÍ POČET NALEZENÝCH VLAKŮ
- -- VLOŽÍM POČET NALEZENÝCH VLAKŮ DO PROMĚNNÉ
- select @v_pocetvlaku = COUNT(distinct(train.idTrain)) from Train
- join Station on Train.idStation = Station.idStation
- join TrainRide on Train.idTrain = TrainRide.idTrain
- where Train.startTime > @p_od and Train.endTime < @p_do
- and TrainRide.rideDate = @p_datum
- and Train.idStation = @v_idstation and Train.idStation1 = @v_idstation1;
- -- VÝPISY:
- print 'Počet nalezených vlaků: ' + CAST ( @v_pocetvlaku AS varchar);
- print 'Z: ' + CAST ( @p_pocatecniStanice AS varchar);
- print 'Do: ' + CAST ( @p_koncovaStanice AS varchar);
- print 'Od: ' + CAST ( @p_od AS varchar (8));
- print 'Do: ' + CAST ( @p_do AS varchar (8));
- print 'Dne: ' + CAST ( @p_datum AS varchar);
- print '-------------------------';
- -- PROCHÁZÍM CURSOR
- open c_vlaky;
- fetch next from c_vlaky into @v_name, @v_sTime, @v_eTime, @v_price;
- while @@FETCH_STATUS = 0
- begin
- print 'Název vlaku: ' + @v_name;
- print 'Čas výjezdu: ' + cast (@v_sTime as varchar (8));
- print 'Čas dojezdu: ' + cast (@v_eTime as varchar (8));
- print 'Cena 2. třída: ' + cast (@v_price as varchar);
- print 'Cena 1. třída: ' + cast (@v_price * 1.5 as varchar);
- print '---';
- fetch next from c_vlaky into @v_name, @v_sTime, @v_eTime, @v_price;
- end
- close c_vlaky;
- end
Advertisement
Add Comment
Please, Sign In to add comment