So.
As I can't find something that will do the from-to dateadd and will not split to more rows, I will be inserting a reference starting date (that is always Thursday) into a column and I split three needed tables into different pivots and insert to different temp tables.
I then join the tables so I could get the result.
If there is a better solution (as I am forced to call the main table 3 times) please let me know.
This is the code:
declare @datefrom as date
declare @dateto as date
set @datefrom = '20180913'
set @dateto = '20180919'
SELECT * INTO #TempMarketBO FROM(
SELECT
[MarketFilmCode]
,[MarketFilmName]
,[MarketArea]
,[MarketFilmFormat]
,[MarketOVDUB]
,[MarketWeekFilm]
,[MarketScreens]
,[Thursday] as BOThursday
,[Friday] as BOFriday
,[Saturday] as BOSaturday
,[Sunday] as BOSunday
,[Monday] as BOMonday
,[Tuesday] as BOTuesday
,[Wednesday] as BOWednesday
FROM
(select marketfilmname,MarketBO,[MarketFilmCode],[MarketArea] ,[MarketFilmFormat]
,[MarketOVDUB]
,[MarketWeekFilm]
,[MarketScreens] ,datename(WEEKDAY,marketcinemadate) as DAY
from vwDWMarketData
where marketcinemadate between @datefrom and @dateto
) as p
PIVOT (
SUM (MarketBO)
FOR DAY IN (
[Thursday], [Friday],[Saturday], [Sunday], [Monday], [Tuesday], [Wednesday]) ) pvt ) as x
--
select * into #TempMarketAD FROM(
SELECT
[MarketFilmCode]
,[MarketFilmName]
,[MarketArea]
,[MarketFilmFormat]
,[MarketOVDUB]
,[MarketWeekFilm]
,[MarketScreens]
,[Thursday] as ADThursday
,[Friday] as ADFriday
,[Saturday] as ADSaturday
,[Sunday] as ADSunday
,[Monday] as ADMonday
,[Tuesday] as ADTuesday
,[Wednesday] as ADWednesday
FROM
(select marketfilmname,MarketAdmissions,[MarketFilmCode],[MarketArea] ,[MarketFilmFormat]
,[MarketOVDUB]
,[MarketWeekFilm]
,[MarketScreens] ,datename(WEEKDAY,marketcinemadate) as DAY
from vwDWMarketData
where marketcinemadate between @datefrom and @dateto
) as p
PIVOT (
SUM (MarketAdmissions)
FOR DAY IN (
[Thursday], [Friday],[Saturday], [Sunday], [Monday], [Tuesday], [Wednesday]) ) pvt) as x
select * into #TempMarketVL FROM(
SELECT
[MarketFilmCode]
,[MarketFilmName]
,[MarketArea]
,[MarketFilmFormat]
,[MarketOVDUB]
,[MarketWeekFilm]
,[MarketScreens]
,[Thursday] as VAThursday
,[Friday] as VAFriday
,[Saturday] as VASaturday
,[Sunday] as VASunday
,[Monday] as VAMonday
,[Tuesday] as VATuesday
,[Wednesday] as VAWednesday
FROM
(select marketfilmname,VAdmissions,[MarketFilmCode],[MarketArea] ,[MarketFilmFormat]
,[MarketOVDUB]
,[MarketWeekFilm]
,[MarketScreens] ,datename(WEEKDAY,marketcinemadate) as DAY
from vwDWMarketData
where marketcinemadate between @datefrom and @dateto
) as p
PIVOT (
SUM (VAdmissions)
FOR DAY IN (
[Thursday], [Friday],[Saturday], [Sunday], [Monday], [Tuesday], [Wednesday]) ) pvt ) as x
select BO.MarketFilmCode,BO.MarketFilmName,BO.MarketArea,BO.MarketFilmFormat,BO.MarketOVDUB,BO.MarketWeekFilm,BO.MarketScreens
,BOThursday,BOFriday,BOSaturday,BOSunday,BOMonday,BOTuesday,BOWednesday
,ADThursday,ADFriday,ADSaturday,ADSunday,ADMonday,ADTuesday,ADWednesday
,VAThursday,VAFriday,VASaturday,VASunday,VAMonday,VATuesday,VAWednesday
from #TempMarketBO BO inner join #TempMarketAD AD on BO.MarketFilmCode= AD.MarketFilmCode and BO.MarketArea= AD.MarketArea
and BO.MarketFilmFormat= AD.MarketFilmFormat and BO.MarketOVDUB = AD.MarketOVDUB
inner join #TempMarketVL VL on AD.MarketFilmCode = VL.MarketFilmCode and AD.MarketArea = VL.MarketArea
and AD.MarketFilmFormat = VL.MarketFilmFormat and AD.MarketOVDUB = VL.MarketOVDUB
drop table #TempMarketBO
drop table #TempMarketAD
drop table #TempMarketVL