0

iReportを使用していくつかのボックス ラベルを作成しており、各ボックス ラベルのデータを乗算する必要があります。

レコード ID の @id と必要なパッケージ タイプの @typ の 2 つのパラメータがあります。

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 がオラクルであると仮定しています [他の DB についてはわかりません。

于 2013-04-24T15:23:24.520 に答える