【发布时间】:2016-07-29 05:30:21
【问题描述】:
我正在写一份报告,以根据承诺的发货日期拉动金属现货价格。它使用 60 天中西部 (MW) 平均值。因此,对于 3 月份承诺的装运,使用 1 月份的 MW 平均值。该表是用户定义的,有一些问题使我无法像往常一样拉动该字段(长篇大论)。
所以我写了一个查询,将数据库中的列标签([MONTH] [YEAR])与承诺日期的月份和年份进行比较,并返回正确的 MW 平均值。它在 Oracle 的 SQL Developer 中运行正常,但在 Crystal 中运行不正确,返回同月的 MW 平均值(或根本不运行)。以下供参考。 (我知道这有点笨拙)
select ap.invoice_Date indate,
ap.invoice_no as invno,
ap.vendor_id,
apd.po_detail_id as podid,
por.promise_date as pd,
dat.parent_id as vendid,
dat.ud_cols_id as cols,
col.col_label label,
dat.cuser as ingot
from ud_data dat
inner join ud_cols col
on dat.ud_cols_id = col.id
inner join apinvoice ap
on ap.vendor_id = dat.parent_id
inner join apinvoice_detail apd
on ap.id = apd.apinvoice_id
inner join po_detail pod
on apd.po_detail_id = pod.id
inner join po_releases por
on pod.id = por.po_detail_id
where trim(TO_CHAR(add_months(por.promise_date, -2), 'MONTH'))= upper(substr(COL.col_label, 1, length(col_label)-5))
and substr(por.promise_date, -2, 2) = substr(col.col_label, -2, 2)
and ud_cols_id in (94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 146)
order by ap.invoice_Date
我认为这与日期和格式有关,但我将它们分开并且比较匹配。我尝试了所有可能的链接组合(但坚持使用左外连接,内连接使报告返回空白)。浏览字段数据也没有。
任何想法都值得赞赏。我很茫然..
【问题讨论】:
-
您将查询放在哪里?是吗?
-
在我花时间寻找解决方案之前...你没有回答红人的问题。
-
@reds 我不确定我是否理解您的要求。我将它作为命令添加到表列表中。在 vendor_id 上链接到 AP 发票上的供应商 ID。
-
@CoSpringsGuy 所以我看到了。我现在已经回答了。如果我理解错了,也许你能澄清一下?
-
因为查询在 Oracle 应用程序中运行良好,所以很难说。 oracle 应用程序是否使用与 Crystal 相同的 odbc 设置?
标签: mysql crystal-reports