首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >按当月编制上月份数据

按当月编制上月份数据
EN

Stack Overflow用户
提问于 2017-05-25 19:03:45
回答 1查看 50关注 0票数 0

我有一个表名Prv_Data,它包含前一个月的报告,有Report_Id和Timeline列。

Prv_Data -->

Report_ID | Timeline ---------------|-------------- 01 | Weekly @Mon 01 | Weekly @Mon 01 | Weekly @Mon 01 | Weekly @Mon 02 | Weekly @Thru 02 | Weekly @Thru 02 | Weekly @Thru 02 | Weekly @Thru 02 | Weekly @Thru

我有另一个表名为Cur_Month,它包含当前月份的详细信息。

Cur_月份->

Details | Count --------------|-------- First Date | 05/01/2017 Last Date | 05/31/2017 Friday | 4 Monday | 5 Saturday | 4 Sunday | 4 Thursday | 4 Tuesday | 5 Wednesday | 5

现在我想用一个表名作为Cur_Data,它包含了报告的细节,但是根据当前的工作日统计,意思是在前一个月的统计是4,星期四的计数是5,这就是为什么Report_ID 1和2的出现时间是4次,星期四是5次,但是在current_Month,现在我们有星期一和星期四是5和4(当前月份的信息来自Cur_Month表),根据这一点,我想复制prv_month表数据,但是根据星期一和星期四的发生情况-- Cur_Data --Cur_Data。

Cur_Data (期望表)->

Report_ID | Timeline ---------------|-------------- 01 | Weekly @Mon 01 | Weekly @Mon 01 | Weekly @Mon 01 | Weekly @Mon 01 | Weekly @Mon 02 | Weekly @Thru 02 | Weekly @Thru 02 | Weekly @Thru 02 | Weekly @Thru

(预先谢谢:)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-29 04:55:19

在我看来,你似乎没有很好地满足你的要求。

我什么都没跟踪。

我唯一理解的是,您希望将Cur_Month数据转换为特定格式的Cur_Data数据,我还没有理解背景。

试试这个让我知道,

代码语言:javascript
复制
declare @Prv_Data table(Report_ID int,Timeline varchar(40))
insert into @Prv_Data VALUES
(01,'Weekly @Mon')
,(01,'Weekly @Mon')
,(01,'Weekly @Mon')
,(01,'Weekly @Mon')
,(02,'Weekly @Thru')
,(02,'Weekly @Thru')
,(02,'Weekly @Thru')
,(02,'Weekly @Thru')
,(02,'Weekly @Thru')


declare @Cur_Month table(Details varchar(40),Count varchar(40))
insert into @Cur_Month VALUES
('First Date','05/01/2017')
,('Last Date','05/31/2017')
,('Friday','4')
,('Monday','5')
,('Saturday','4')
,('Sunday','4')
,('Thursday','4')
,('Tuesday','5')
,('Wednesday','5')
;WITH Cur_Data as
(
select *
,case when Details='Monday' then '1' 
when Details='Thursday' then '2'  END ReportID
,case when Details='Monday' then 'Weekly @Mon' 
when Details='Thursday' then 'Weekly @Thru'  END Timeline
  from @Cur_Month
where Details in('Monday','Thursday')
)

select REPLICATE('0',len(ReportID))+  ReportID ReportID
,Timeline from Cur_Data c
cross apply  (select number 
from master..spt_values where number>0 
and number<=c.[count]  and type='LO')cs
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44188006

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档