我想不出更好的方法来问这个问题,但这里是:
我有 2 张桌子。第一个是标签打印作业的项目表。我们将称之为pj_items
这些列很简单:job_id, part_num and qty
第二个表是名为的饰面列表PartFinishes
在只有 2 列的零件上:PartNumber and FinishId
当我想检索标签打印机的信息时,我使用:
select pj_items.part_num, pj_items.qty, PartFinishes.FinishId from pj_items
join PartFinishes on PartFinishes.PartNumber = pj_items.part_num
where job_id = 1
当每个部分只有一个完成时,此查询工作正常并给出正确的结果。问题是当一个零件有 2 个或更多饰面时。
例如: 部分99401326
有 2 个饰面。在我的pj_items
表我有一行用于该部分,因此我可以打印一个标签。当我使用此查询时,它会为该部分返回 2 行,每行都有不同的FinishId
不幸的是,这会导致打印 2 个标签。我需要将这两种表面处理都放在一行上,因为我只想在一个标签上打印这两种表面处理FinishId
的礼物。
我有一个类似的查询,它将饰面返回为新列(f1,f2,f3
) 但在给定的示例中它仍然会返回 2 行f1
在第一行中定义并且f1
第二行中为 null 且f2
在第二个中定义。
我怎样才能把它排成一排?
希望这是有道理的,有人有什么建议吗?
如果您需要更多信息,请告诉我。
Thanks!
EDIT:
The pj_items
表可能有重复的条目,我需要将它们保留为单独的行。我只需要将每个零件的所有饰面与其各自的零件放在一排中即可。
Example
Here is an example of the pj_items table:
Here is the relevant information from the PartFinishes
table:
And here is the result using the original query:
我在结果中需要的是两行99401326
是在该行中具有两种饰面的一个,同时保留 2 个单独的行99401077
因为我想要其中的 2 个标签。