我想首先说我已经查看,研究并尝试过发布在SO上的其他问题,这些问题可能与我遇到的这个问题有关。没有任何工作,也没有涉及此问题
我正在撰写一份报告,该报告使用来自SO(销售订单)表和WO(工作订单)表的数据。我在照片中显示了2个场景。当我仅使用Part,Description,SO#和SO数量运行报告时,报告运行完美:)!
问题是当我添加WO表并添加值 WO#和Quantity时。 我知道它必须与表格如何加入或如何进行iReport设置有关。
为了澄清图片中发生的事情,使用表格,我使用 PART 表作为主键,报告应该做的是显示我,基于所选择的部分,在SO和WO中仍未“完成”的任何部分。所以SO仍然可以有一个未被“挑选和包装”的部分,而WO也可以有一个未被“挑选和包装”的部分,但是你可以有一个WO而不是SO,反之亦然。
问题:我如何保持我的WO#和WO数量值不再像他们那样重复并在最后弄乱我的金额?由于值是重复的,我的sum函数会不断添加它们并给出错误的数字。 谢谢你给予的任何帮助!
这些是照片。该报告非常有效,直到我添加了WO表和值 - 这些都显示在照片中。
现在接下来的4张照片是我添加WO表格后的结果
答案 0 :(得分:0)
SO和WO之间似乎没有联系,因此将两者放在一行似乎不正确。如果您想在同一报表上看到两种类型的订单,那么我建议每一行都有SO或WO的数据。要在同一报表上获得两种类型的订单,您可以使用联合分别返回每种订单类型的结果。您需要添加某种“类型”列以显示正在显示的订单类型。以下是可以实现此目的的查询。我只包括对答案至关重要的列。希望你能得到这个想法。我不确定哪个是合适的数量列,因此可能需要更改。
SELECT
PART."NUM" AS PART_NUM,
PART."DESCRIPTION" AS PART_DESCRIPTION,
'Sales Order' AS RESULT_TYPE
SO."NUM" ORDER_NUMBER,
SOITEM."QTYTOFULFILL" AS QTY
FROM
"PART" PART
INNER JOIN "PRODUCT" PRODUCT ON PART."ID" = PRODUCT."PARTID" AND PRODUCT."ID" = PART."DEFAULTPRODUCTID"
INNER JOIN "SOITEM" SOITEM ON SOITEM."PRODUCTID" = PRODUCT."ID"
INNER JOIN "SO" SO ON SOITEM."SOID" = SO."ID"
WHERE
PART."NUM" = $P{partNUM}
UNION ALL
SELECT
PART."NUM" AS PART_NUM,
PART."DESCRIPTION" AS PART_DESCRIPTION,
'Work Order' AS RESULT_TYPE,
WO."NUM" AS ORDER_NUMBER,
WOITEM."QTYUSED" AS QTY
FROM
"PART" PART
INNER JOIN "PRODUCT" PRODUCT ON PART."ID" = PRODUCT."PARTID" AND PRODUCT."ID" = PART."DEFAULTPRODUCTID"
INNER JOIN "WOITEM" WOITEM ON PART."ID" = WOITEM."PARTID"
INNER JOIN "WO" WO ON WOITEM."WOID" = WO."ID"
WHERE
PART."NUM" = $P{partNUM}