目前我正在检索采购订单行(POL)列表,每个都有截止日期。对于POL.Due日期是未来日期即> =当前日期的每一行,我需要确定POL.Due日期所属的期间名称和财务周。
SQL数据库有一个财务周期表和一个财务周表。每个表都由日期驱动。
PERIODPER
PERIOD_DATE
PERIOD
PERIOD_NAME
PERIOD_YEAR
PERIOD_WEEK
START_DATE
WEEK
YEAR
针对每个报告行以及截止日期我尝试链接到上述每个表,以确定POL.Due日期的PERIOD_NAME和WEEK。
POL.Due日期已经过去,即<当前日期,我需要检索当前日期的PERIOD_NAME和WEEK。
我想尝试在SQL select中执行此操作,因为我唯一的另一个选择是编写VBA报告,该报告最初检索所有采购订单行,然后按顺序读取每个订单行并链接到其他表以确定财务期间名称和周数。
我正在寻找最终结果:
PO_NUMBER PO_LINE DUE_DATE WEEK_NO PERIOD_NAME
我很感激对此的任何帮助,因为我的SQL知识并没有延伸到我看来是一个复杂的选择。
答案 0 :(得分:0)
你的意思是这样的(SQL Server语法)吗?
select pol.po_number,
pol.po_line,
pol.due_date,
pw.week as week_no,
pp.period_name
from purchaseOrderLines pol
left join period_week pw on pol.DueDate > GetDate()
and pw.start_date <= pol.due_date
and dateAdd(d, 7, pw.start_date) >= pol.due_date
left join periodPer pp on pol.DueDate > GetDate()
and pp.period_date = pol.DueDate
答案 1 :(得分:0)
感谢您的回复。
我尝试了你的逻辑,它给了我正在寻找的东西,但经过进一步的调查,我找到了另一张表,详细列出了截至2025年的每个日期,包括周和月。我现在只是使用我的截止日期值为这个新表创建一个JOIN。
我要感谢您花时间和精力回答我的问题。虽然我没有对你所说的例子使用你的建议,但是我正在看你所呈现的内容,它肯定给了我一些关于我目前正在处理的其他SELECT语句的想法。