iReport表加入问题并导致重复值

时间:2015-12-03 15:58:43

标签: mysql jasper-reports report reporting

我想首先说我已经查看,研究并尝试过发布在SO上的其他问题,这些问题可能与我遇到的这个问题有关。没有任何工作,也没有涉及此问题

我正在撰写一份报告,该报告使用来自SO(销售订单)表和WO(工作订单)表的数据。我在照片中显示了2个场景。当我仅使用Part,Description,SO#和SO数量运行报告时,报告运行完美:)!

问题是当我添加WO表并添加值 WO#和Quantity时。 我知道它必须与表格如何加入如何进行iReport设置有关。

为了澄清图片中发生的事情,使用表格,我使用 PART 表作为主键,报告应该做的是显示我,基于所选择的部分,在SO和WO中仍未“完成”的任何部分。所以SO仍然可以有一个未被“挑选和包装”的部分,而WO也可以有一个未被“挑选和包装”的部分,但是你可以有一个WO而不是SO,反之亦然。

问题:我如何保持我的WO#和WO数量值不再像他们那样重复并在最后弄乱我的金额?由于值是重复的,我的sum函数会不断添加它们并给出错误的数字。 谢谢你给予的任何帮助!

这些是照片。该报告非常有效,直到我添加了WO表和值 - 这些都显示在照片中。

enter image description here

enter image description here

enter image description here

enter image description here

现在接下来的4张照片是我添加WO表格后的结果

enter image description here

enter image description here

enter image description here

enter image description here

1 个答案:

答案 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}