Tbl_campaign_details_direct
列出了每个广告系列的参数(CampaignDuration现在只是一个占位符)。
我想将该表与tbl_dim_date
(仅摘录)相关联:
为此,我想编写一个TSQL语句,根据{{1}中定义的日期范围(=“Campaign Start”和“Campaign Finish”)自动设置tbl_dim_date
中的“CampaignDetailsDirectID”列。 }}
这意味着对于20150609和20150617之间的所有DateID,CampaignDetailsDirectID列应在tbl_campaign_details_direct
中获得“2”。
对于20151126和20151201之间的所有DateID,tbl_dim_date
中的“1”。
对于tbl_campaign_details_direct中的一条记录 ,我的TSQL如下所示:
tbl_dim_date
如何调整此查询,以便它不仅适用于一个广告系列,还会遍历Declare @start int, @finish int, @CampaignID int
Set @start = (select cast(replace(CampaignStart,'-','')as int) from [REPORTING].[dbo].[campaign_details_direct])
Set @finish = (select cast(replace(CampaignFinish,'-','')as int) from [REPORTING].[dbo].[campaign_details_direct])
While @start <= @finish
Begin
Update Reporting.dbo.dim_date
Set CampaignDetailsDirectID = 1 --How to adjust to set respective CampaignDetailsDirectID automatically = campaign_details_direct.CampaignDetailsID?
Where dim_date.DateID = @start
Set @start = @start + 1
End
Go -- How to iterate through all campaigns?
中的所有CampaignDetailsID?或者另一种实现相同结果的方法更有用吗?
更新了仅适用于黑色星期五的日期范围的新尝试。这里有什么明显的东西吗?
tbl_campaign_details_direct