簡體   English   中英

SQL,基於變量從單個表多次返回一行

[英]SQL, return a row multiple times from single table based on variable

我正在使用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選擇數量,然后找出如何將行相乘。

救命。

您可以嘗試使用外部聯接來實現。 嘗試這個:

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 [不確定是否鄰接其他DB。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM