Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 从日期开始的Oracle周数_Sql_Oracle_Date_Date Arithmetic_Infomaker - Fatal编程技术网

Sql 从日期开始的Oracle周数

Sql 从日期开始的Oracle周数,sql,oracle,date,date-arithmetic,infomaker,Sql,Oracle,Date,Date Arithmetic,Infomaker,我是甲骨文的新手。我已经找到了我需要的大部分,但有一个领域让我疯狂。看起来应该很简单,但我觉得我的大脑已经崩溃了,我就是无法控制它。我想写一份销售报告。根据发票日期,我在做各种疯狂的事情。我需要做的最后一件事是能够创建一个周数,这样我就可以报告一年一周的销售情况。就本报告而言,我的财政年度从每年的12月1日开始(无论是哪一天)。例如,12月1日至7日将是第1周,等等。我可以使用各种功能获取周数,但所有这些功能都基于日历年或ISO周。如何轻松生成一个字段,该字段将给出自12月1日以来的周数?非常感

我是甲骨文的新手。我已经找到了我需要的大部分,但有一个领域让我疯狂。看起来应该很简单,但我觉得我的大脑已经崩溃了,我就是无法控制它。我想写一份销售报告。根据发票日期,我在做各种疯狂的事情。我需要做的最后一件事是能够创建一个周数,这样我就可以报告一年一周的销售情况。就本报告而言,我的财政年度从每年的12月1日开始(无论是哪一天)。例如,12月1日至7日将是第1周,等等。我可以使用各种功能获取周数,但所有这些功能都基于日历年或ISO周。如何轻松生成一个字段,该字段将给出自12月1日以来的周数?非常感谢您的帮助。

忘记默认的周数格式,因为它不适用于此特定要求。我可能会从发票日期中减去前一个12月1日,然后除以7。四舍五入,加上1,你就没事了

select floor(
  (
  trunc(invoiceDate) - 
  case 
  -- if December is current month, than use 1st of this month
  when to_char(invoiceDate, 'MM') = '12' then trunc(invoiceDate, 'MM')
  -- else, use 1st December of previous year
  else add_months(trunc(invoiceDate, 'YYYY'), -1)
  end
  ) / 7
) + 1
from dual;

好的,请原谅我的无知。我不仅是oracle的新手,而且也是infomaker的新手。新工作、新工具、新挑战——我们都经历过。这是我的查询-我希望FW字段是财政周结果。我如何采纳你的建议?划伤那个-查询太长了。这是我目前使用的一行字符(“AR_TRX_HEADER”,“SHIPDATETIME”,“ww”)作为FW,我如何合并您的建议。谢谢你的帮助!!!我不熟悉Infomaker,但我猜应该用“as fw”替换“from dual”,用ar_trx_header替换invoiceDate。ShipDateTime我已经替换了invoiceDate,但因为我不明白from dual在做什么,所以我把它放在那里了。我将“from Dual;”替换为“AS FW”,并删除了前导的select,因为它已经是查询的一部分,并且工作得非常好!非常感谢你!Dual是Oracle中只有一行的虚拟表。您可以将它用于各种事情,例如尝试查询:-)在SQL客户机/IDE(如SQL Developer)中尝试一下。请接受我旁边有复选标记的答案。好消息。我很乐意“核对”你的答案。非常感谢你的帮助!