我正在使用 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选择数量,然后找出如何将行相乘。
帮助。
答案 0 :(得分: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 [不确定是否与其他数据库相邻。