【问题标题】:MS Access: match XRate to dateMS Access:匹配 Xrate 到日期
【发布时间】:2020-03-06 23:38:25
【问题描述】:

我有三个表:销售额、货币、汇率

我需要将每笔销售和外币交易的适当汇率计算为我们的当地货币。汇率表包含每种外币的值,但仅限于每个月的一个日期,即最后一天。

到目前为止,如果销售日期恰好是一个月的最后一天,我已经尝试了以下方法:

SELECT 
    qry_SALES.Payment_ID, 
    qry_SALES.Product_Name, 
    qry_SALES.Sales, 
    qry_SALES.SalesDate, 
    qry_SALES.SalesCcy, 
    tbl_XRate.XRate_CHF, 
    tbl_XRate.XDate
FROM 
    qry_SALES INNER JOIN 
    (tbl_Currency INNER JOIN tbl_XRate ON tbl_Currency.Currency_ID = tbl_XRate.Currency_ID) 
    ON (qry_SALES.SalesDate = tbl_XRate.XDate) AND (qry_SALES.SalesCcy = tbl_Currency.Ccy)
ORDER BY qry_SALES.SalesDate;

如何让一个月内的交易与汇率表的最后值相匹配?

【问题讨论】:

    标签: sql ms-access


    【解决方案1】:

    使用匹配的 ultimo 日期试试这个:

    FROM 
        qry_SALES 
    INNER JOIN 
        (tbl_Currency 
    INNER JOIN tbl_XRate 
        ON tbl_Currency.Currency_ID = tbl_XRate.Currency_ID) 
        ON (DateSerial(Year(qry_SALES.SalesDate), Month(qry_SALES.SalesDate) + 1, 0) = tbl_XRate.XDate) 
            AND (qry_SALES.SalesCcy = tbl_Currency.Ccy)
    

    或:

    FROM 
        qry_SALES 
    INNER JOIN 
        (tbl_Currency 
    INNER JOIN tbl_XRate 
        ON tbl_Currency.Currency_ID = tbl_XRate.Currency_ID) 
        ON (qry_SALES.SalesCcy = tbl_Currency.Ccy)
    WHERE
        DateSerial(Year(qry_SALES.SalesDate), Month(qry_SALES.SalesDate) + 1, 0) = tbl_XRate.XDate
    

    【讨论】:

      猜你喜欢
      • 2022-01-17
      • 2021-05-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-07
      • 2015-06-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多