季度周计算SQL

季度周计算SQL,sql,datetime,amazon-redshift,Sql,Datetime,Amazon Redshift,我正在尝试使用sql从cal_date_d表中查找季度的一周。我的表有cal_日期、会计季度开始和结束日期。我还有一个专栏,上面写着财政年度的每周。我的财政年度从2月开始。 但是,我要解决这个问题的最接近的查询如下: select datepart(week, DATEADD(MONTH,-10,cal_date)) - ((DatePart(quarter, DATEADD(MONTH,-10,cal_date))-1) *13), fiscal_week_of_year,

我正在尝试使用sql从cal_date_d表中查找季度的一周。我的表有cal_日期、会计季度开始和结束日期。我还有一个专栏,上面写着财政年度的每周。我的财政年度从2月开始。 但是,我要解决这个问题的最接近的查询如下:

select datepart(week, DATEADD(MONTH,-10,cal_date)) - ((DatePart(quarter, DATEADD(MONTH,-10,cal_date))-1) *13), 
       fiscal_week_of_year,
       weekofqtr,
       cal_date
  from cal_date_d_tst 
现在第一周我总是得到的结果是0。我不确定我会错在哪里

帮我解决这个问题


如果您有
财政季度开始
,那么这不管用吗

select 1 + datediff(day, fiscal_quarter_start, cal_date) / 7 

这只是计算进入季度的天数,然后除以7。

如果您有
财政季度开始时间
,那么这不起作用吗

select 1 + datediff(day, fiscal_quarter_start, cal_date) / 7 

这只是计算进入季度的天数并除以7。

如果查询基于DATEPART(季度),请使用以下公式

DATEDIFF(WEEK, DATEADD(MONTH, DATEDIFF(MONTH, 0, '2012-03-17'), 0), '2012-03-17') +1 AS WeekNoMonth,DATEDIFF(WEEK, DATEADD(QUARTER, DATEDIFF(QUARTER, 0, '2012-03-17'), 0), '2012-03-17') +1

如果您根据DATEPART(季度)进行查询,请使用以下命令

DATEDIFF(WEEK, DATEADD(MONTH, DATEDIFF(MONTH, 0, '2012-03-17'), 0), '2012-03-17') +1 AS WeekNoMonth,DATEDIFF(WEEK, DATEADD(QUARTER, DATEDIFF(QUARTER, 0, '2012-03-17'), 0), '2012-03-17') +1

根据您的样本集,预期数据应该是什么?@BhupeshC应始终在会计年度的第一个星期日开始季度盘点周根据您的样本集,预期数据应该是什么?@BhupeshC应始终在会计年度的第一个星期日开始季度盘点周year@gordanlinoff不幸的是没有帮助。。发生的事情是,一周应该总是从周日开始,到周六结束。在上述情况下,如果季度从星期三开始,query会将星期三和星期二视为一周。@gordanlinoff不幸的是,这没有帮助。。发生的事情是,一周应该总是从周日开始,到周六结束。在上述情况下,如果季度从周三开始,query将周三周二视为一周。