【问题标题】:SQL Select Items and link field to another table in same selectSQL选择项目并将字段链接到同一选择中的另一个表
【发布时间】:2015-08-12 23:49:00
【问题描述】:

目前我正在检索采购订单行 (POL) 的列表,每个行都有一个到期日。对于 POL.Due Date 为未来日期(即 >= Current Date)的每一行,我需要确定 POL.Due Date 所属的期间名称和财务周。

SQL 数据库有一个财务周期表和一个财务周表。每个表都由日期驱动。

PERIODPER
    PERIOD_DATE
    PERIOD
    PERIOD_NAME
    PERIOD_YEAR

PERIOD_WEEK
    START_DATE
    WEEK
    YEAR

针对每个报告行以及截止日期,我试图链接到上述每个表格以确定 POL.Due Date 的 PERIOD_NAME 和 WEEK。

如果 POL.Due Date 已过,即

我想尝试在 SQL 选择中执行此操作,因为我唯一的其他选择是编写一个 VBA 报告,该报告最初检索所有采购订单行,然后依次读取每个行并链接到其他表以确定财务期间名称和周数。

我正在寻找最终结果:

PO_NUMBER   PO_LINE   DUE_DATE   WEEK_NO  PERIOD_NAME

我会很感激这方面的任何帮助,因为我的 SQL 知识并没有扩展到对我来说似乎是一个复杂的选择。

【问题讨论】:

    标签: sql select


    【解决方案1】:

    你的意思是这样的吗(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
    

    【讨论】:

      【解决方案2】:

      感谢您的回复。

      我尝试了你的逻辑,它给了我想要的东西,但经过进一步调查,我找到了另一个表格,其中详细说明了截至 2025 年的每个日期,包括星期和月份。我现在只是使用我的到期日期值创建一个 JOIN 到这个新表。

      感谢您在回答我的问题时付出的时间和精力。尽管我没有将您的建议用于所述示例,但我正在查看您提供的内容,它确实为我目前正在处理的其他一些 SELECT 语句提供了一些想法。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-10-18
        • 2020-01-07
        • 2019-11-19
        • 1970-01-01
        • 2013-02-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多