0

我正在使用iReport创建一些框标签,并且需要将每个框标签的数据相乘。

我有 2 个参数,@id 用于记录 ID,@typ 用于所需的包类型

SELECT
     dr_id,
     dr_to_customer,
     dr_company_name,
     dr_address_0,
     dr_address_1,
     dr_address_2,
     dr_address_3,
     dr_postcode,
     dr_contact,
     dr_per_packs,
     dr_per_boxes,
     dr_per_pallets
FROM delreq
WHERE dr_id = @id AND ??timesTOrepeat?? = @typ (a string)

我需要根据包装、盒子或托盘中的数量将每一行退回x次。

所以,我需要先根据@typ 选择数量,然后计算出如何将行相乘。

帮助。

4

1 回答 1

1

您可以尝试使用外连接来实现这一点。尝试这个:

SELECT
     dr_id,
     dr_to_customer,
     dr_company_name,
     dr_address_0,
     dr_address_1,
     dr_address_2,
     dr_address_3,
     dr_postcode,
     dr_contact,
     dr_per_packs,
     dr_per_boxes,
     dr_per_pallets
FROM delreq a, (select -1 id from all_objects where rownum < @typ) b
WHERE dr_id = @id AND a.dr_id(+) = b.id; 

我在这里假设 dr_id 不会有值 -1 也假设 db 是 oracle [不确定邻接其他数据库。

于 2013-04-24T15:23:24.520 回答