Author |
Topic |
sapator
Constraint Violating Yak Guru
462 Posts |
Posted - 2014-12-03 : 06:10:26
|
Hi. I haven't used pivot so i am not sure if this is the way to go.I have a result such like27.11.2014 - 13.03.2014, CinemaX, TitleX ...etc , 17:0027.11.2014 - 13.03.2014, CinemaX, TitleX ...etc , 19:0027.11.2014 - 13.03.2014, CinemaX, TitleX ...etc , 21:00etcSo this will bring titles and their playtime.What i need to do is Have everything as is but the time.So it will be something like:27.11.2014 - 13.03.2014, CinemaX, TitleX ,17:00,19:00,21:00This should be per hour so it will have 12 hour columns(or 24 but i am not yet sure about that, anyhow that is the least of the issue).So is there a way to accomplish that?Thanks.declare @datefrom datetime,@dateto datetimeset @datefrom = '11/27/2014 00:00:00'set @dateto = '12/03/2014 00:00:00'SELECT convert(varchar, @datefrom, 104) + ' - ' + convert(varchar, @dateto, 104) as week,TC.Cinema_strname,Screen_strName,Film_strTitle,Film_strTitlealt, D.Distrib_strName, convert(varchar,Session_dtmRealShow,106) as Show_date,convert(char(5), Session_dtmRealShow, 108) as Show_time-- S.Screen_bytNum , --S.CinOperator_strCode, CO.CinOperator_strName, CO.CinOperator_strShortName , CO.Cinema_strCode,--D.Distrib_strHODistribCode, D.Distrib_strCodeFROM tblSession S LEFT JOIN tblFilm F ON S.Film_strCode = F.Film_strCode LEFT JOIN tblCinema_Screen CS ON CS.Screen_bytNum = S.Screen_bytNum --LEFT JOIN tblPrice_Group PG ON S.PGroup_strCode = PG.PGroup_strCode LEFT JOIN tblSession_Types ST on S.SType_strSessionTypeCode = ST.SType_strSessionTypeCode LEFT JOIN tblEvent E on E.Event_strCode = S.Event_strCode LEFT JOIN tblCinema_Operator CO ON S.CinOperator_strCode = CO.CinOperator_strCodeLEFT JOIN tblDistributor D ON F.Distrib_strCode = D.Distrib_strCode inner join tblCinema TC on TC.Cinema_strcode = CO.Cinema_strcodeWHERE Session_strStatus IN ('O','P','A') AND (Session_dtmRealShow >= @datefrom AND Session_dtmRealShow < @dateto)and (convert(char(5), Session_dtmRealShow, 108) >= '15:00:00' and convert(char(5), Session_dtmRealShow, 108) <= '23:59:00')and co.cinoperator_strcode = 'FM'and s.screen_bytNum in(4,5)Group by -- S.Screen_bytNum , Screen_strName, Film_strTitle,Film_strTitlealt,S.CinOperator_strCode, CO.CinOperator_strName, CO.CinOperator_strShortName , CO.Cinema_strCode,D.Distrib_strHODistribCode, D.Distrib_strCode, D.Distrib_strName,s.Screen_bytNum,Session_dtmRealShow,TC.Cinema_strname--ORDER BY Session_dtmRealShow ,S.Screen_bytNum |
|
sapator
Constraint Violating Yak Guru
462 Posts |
Posted - 2014-12-04 : 05:11:00
|
I was thinking, if that is not possible, to create 2 steps.One to bring everything, till the tickets and the other to pivot the tickets.Then, somehow to merge the two sets but this is out of my league.Thanks. |
|
|
sapator
Constraint Violating Yak Guru
462 Posts |
Posted - 2014-12-04 : 08:55:24
|
or doing:[CODE]declare @datefrom datetime,@dateto datetimeset @datefrom = '11/27/2014 00:00:00'set @dateto = '12/03/2014 00:00:00'SELECT convert(varchar, @datefrom, 104) + ' - ' + convert(varchar, @dateto, 104) as week,TC.Cinema_strname,Screen_strName,Film_strTitle,Film_strTitlealt, D.Distrib_strName, convert(varchar,Session_dtmRealShow,106) as Show_date,convert(char(5), Session_dtmRealShow, 108) as Show_time1,convert(char(5), Session_dtmRealShow, 108) as Show_time2,convert(char(5), Session_dtmRealShow, 108) as Show_time3,convert(char(5), Session_dtmRealShow, 108) as Show_time4,convert(char(5), Session_dtmRealShow, 108) as Show_time5,convert(char(5), Session_dtmRealShow, 108) as Show_time6,convert(char(5), Session_dtmRealShow, 108) as Show_time7,convert(char(5), Session_dtmRealShow, 108) as Show_time8,convert(char(5), Session_dtmRealShow, 108) as Show_time9,convert(char(5), Session_dtmRealShow, 108) as Show_time10,-- S.Screen_bytNum , --S.CinOperator_strCode, CO.CinOperator_strName, CO.CinOperator_strShortName , CO.Cinema_strCode,--D.Distrib_strHODistribCode, D.Distrib_strCodeFROM tblSession S LEFT JOIN tblFilm F ON S.Film_strCode = F.Film_strCode LEFT JOIN tblCinema_Screen CS ON CS.Screen_bytNum = S.Screen_bytNum --LEFT JOIN tblPrice_Group PG ON S.PGroup_strCode = PG.PGroup_strCode LEFT JOIN tblSession_Types ST on S.SType_strSessionTypeCode = ST.SType_strSessionTypeCode LEFT JOIN tblEvent E on E.Event_strCode = S.Event_strCode LEFT JOIN tblCinema_Operator CO ON S.CinOperator_strCode = CO.CinOperator_strCodeLEFT JOIN tblDistributor D ON F.Distrib_strCode = D.Distrib_strCode inner join tblCinema TC on TC.Cinema_strcode = CO.Cinema_strcodeWHERE Session_strStatus IN ('O','P','A') AND (Session_dtmRealShow >= @datefrom AND Session_dtmRealShow < @dateto)and (convert(char(5), Session_dtmRealShow, 108) >= '15:00:00' and convert(char(5), Session_dtmRealShow, 108) <= '23:59:00')and co.cinoperator_strcode = 'FM'and s.screen_bytNum in(4,5)Group by -- S.Screen_bytNum , Screen_strName, Film_strTitle,Film_strTitlealt,S.CinOperator_strCode, CO.CinOperator_strName, CO.CinOperator_strShortName , CO.Cinema_strCode,D.Distrib_strHODistribCode, D.Distrib_strCode, D.Distrib_strName,s.Screen_bytNum,Session_dtmRealShow,TC.Cinema_strname--ORDER BY Session_dtmRealShow ,S.Screen_bytNum[/CODE]and then calculate if showtimes. Get the smallest showtime and then find if there is a next showtime and if so, put it to the next column, then take that showtime and if a next showtime exists then put it to the next column, etc.Possible? |
|
|
sapator
Constraint Violating Yak Guru
462 Posts |
Posted - 2014-12-05 : 03:53:37
|
I was advice to do this:declare @datefrom datetime,@dateto datetimeset @datefrom = '11/27/2014 00:00:00'set @dateto = '12/03/2014 00:00:00'Create Table #PL (Session_lngSessionId int, ProvSeq int, weekd varchar(100),Cinema_strname nvarchar(100),showdate varchar(100),timein nvarchar(100),primary key (Session_lngSessionId))Insert into #PLselect Session_lngSessionId,row_number() over (partition by Session_lngSessionId order by convert(char(5), Session_dtmRealShow, 108)),convert(varchar, @datefrom, 104) + ' - ' + convert(varchar, @dateto, 104) as week,TC.Cinema_strname,convert(varchar,Session_dtmRealShow,106) as Show_date,convert(char(5), Session_dtmRealShow, 108) as Show_time FROM tblSession S LEFT JOIN tblFilm F ON S.Film_strCode = F.Film_strCode LEFT JOIN tblCinema_Screen CS ON CS.Screen_bytNum = S.Screen_bytNum --LEFT JOIN tblPrice_Group PG ON S.PGroup_strCode = PG.PGroup_strCode LEFT JOIN tblSession_Types ST on S.SType_strSessionTypeCode = ST.SType_strSessionTypeCode LEFT JOIN tblEvent E on E.Event_strCode = S.Event_strCode LEFT JOIN tblCinema_Operator CO ON S.CinOperator_strCode = CO.CinOperator_strCodeLEFT JOIN tblDistributor D ON F.Distrib_strCode = D.Distrib_strCode inner join tblCinema TC on TC.Cinema_strcode = CO.Cinema_strcodeWHERE Session_strStatus IN ('O','P','A') AND (Session_dtmRealShow >= @datefrom AND Session_dtmRealShow < @dateto)-- excel has time between 3 to 11:59??and (convert(char(5), Session_dtmRealShow, 108) >= '15:00' and convert(char(5), Session_dtmRealShow, 108) <= '23:59')---poli specific edo all etsi to exei sto excel..and co.cinoperator_strcode = 'FALM'and s.screen_bytNum in(4,5)Group by -- S.Screen_bytNum , Screen_strName, Film_strTitle,Film_strTitlealt,S.CinOperator_strCode, CO.CinOperator_strName, CO.CinOperator_strShortName , CO.Cinema_strCode,D.Distrib_strHODistribCode, D.Distrib_strCode, D.Distrib_strName,s.Screen_bytNum,Session_dtmRealShow,TC.Cinema_strname,session_lngSessionIdSELECT s.Session_lngSessionId,convert(varchar, @datefrom, 104) + ' - ' + convert(varchar, @dateto, 104) as week,TC.Cinema_strname,Screen_strName,Film_strTitle,Film_strTitlealt, D.Distrib_strName, convert(varchar,Session_dtmRealShow,106) as Show_date,--convert(char(5), Session_dtmRealShow, 108) as Show_timePL1.timein ,PL2.timein ,PL3.timein ,PL4.timein ,PL5.timein ,PL6.timein ,PL7.timein ,PL8.timein ,PL9.timein-- ,S.Screen_bytNum --, S.CinOperator_strCode, CO.CinOperator_strName, CO.CinOperator_strShortName , CO.Cinema_strCode--,D.Distrib_strHODistribCode, D.Distrib_strCodeFROM tblSession S LEFT JOIN tblFilm F ON S.Film_strCode = F.Film_strCode LEFT JOIN tblCinema_Screen CS ON CS.Screen_bytNum = S.Screen_bytNum --LEFT JOIN tblPrice_Group PG ON S.PGroup_strCode = PG.PGroup_strCode LEFT JOIN tblSession_Types ST on S.SType_strSessionTypeCode = ST.SType_strSessionTypeCode LEFT JOIN tblEvent E on E.Event_strCode = S.Event_strCode LEFT JOIN tblCinema_Operator CO ON S.CinOperator_strCode = CO.CinOperator_strCodeLEFT JOIN tblDistributor D ON F.Distrib_strCode = D.Distrib_strCode inner join tblCinema TC on TC.Cinema_strcode = CO.Cinema_strcode left join #PL PL1 on PL1.Session_lngSessionId=S.Session_lngSessionId and PL1.ProvSeq=1left Join #PL PL2 on PL2.Session_lngSessionId=S.Session_lngSessionId and PL2.ProvSeq=2 Left Join #PL PL3 on PL3.Session_lngSessionId=S.Session_lngSessionId and PL3.ProvSeq=3 Left Join #PL PL4 on PL4.Session_lngSessionId=S.Session_lngSessionId and PL4.ProvSeq=4 Left Join #PL PL5 on PL5.Session_lngSessionId=S.Session_lngSessionId and PL5.ProvSeq=5 Left Join #PL PL6 on PL6.Session_lngSessionId=S.Session_lngSessionId and PL6.ProvSeq=6 Left Join #PL PL7 on PL7.Session_lngSessionId=S.Session_lngSessionId and PL7.ProvSeq=7 Left Join #PL PL8 on PL8.Session_lngSessionId=S.Session_lngSessionId and PL8.ProvSeq=8 Left Join #PL PL9 on PL9.Session_lngSessionId=S.Session_lngSessionId and PL9.ProvSeq=9WHERE Session_strStatus IN ('O','P','A') AND (Session_dtmRealShow >= @datefrom AND Session_dtmRealShow < @dateto)-- excel has time between 3 to 11:59??and (convert(char(5), Session_dtmRealShow, 108) >= '15:00' and convert(char(5), Session_dtmRealShow, 108) <= '23:59')---poli specific edo all etsi to exei sto excel..and co.cinoperator_strcode = 'FALM'and s.screen_bytNum in(4,5)Group by -- S.Screen_bytNum , PL1.timein,PL2.timein ,PL3.timein ,PL4.timein ,PL5.timein ,PL6.timein ,PL7.timein ,PL8.timein ,PL9.timein,Screen_strName, Film_strTitle,Film_strTitlealt,S.CinOperator_strCode, CO.CinOperator_strName, CO.CinOperator_strShortName , CO.Cinema_strCode,D.Distrib_strHODistribCode, D.Distrib_strCode, D.Distrib_strName,s.Screen_bytNum,Session_dtmRealShow,TC.Cinema_strname,s.session_lngSessionId--ORDER BY Session_dtmRealShow ,S.Screen_bytNumdrop table #PL put i get null,null,null in the extra columns.Also even if i got the times, there is a date value that will create extra rows, |
|
|
|
|
|