需要行乘法

时间:2013-07-17 12:40:33

标签: sql oracle row multiplication

问题描述: 仓库... 我们在一个容器中收到10件一件PRODUCT和3件相同的PRODUCT。 它们具有不同的USER_DEF_NOTE_2值。 表库存:

SKU_ID; QTY_ON_HAND; CONTAINER_ID; USER_DEF_NOTE_2

SKU1; 10; K001; OT 15/2013

SKU1; 3; K001; WI 14/2011

我需要打印带有第一个USER_DEF_NOTE_2值的10 x标签和带有第二个值的3。

Raporting软件输入是1行= 1标签

在这种情况下如何“多行”?

我在rownum上做了标准连接,并且在一行案例中它可以正常工作。 (我的意思是我知道如何多个单行*数量 - 但我不知道如何乘以1 * qty1 + 2 * qty2)。 我的问题是我正在使用ROWNUM ......并且rownum是全球性的。

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

select t.*
from INVENTORY t
join (select level n from dual 
      connect by level <= (select max(QTY_ON_HAND) from INVENTORY)) 
on n <= t.QTY_ON_HAND

答案 1 :(得分:0)

Recursive Subquery Factoring clause从11gR2到救援!

create table test(code varchar2(10), n number);

insert into test values('FIRST', 10);
insert into test values('SECOND', 3);

with t(code, num) as (
  select code, 1 num from test
   union all
  select test.code, t.num + 1 num from t, test
   where t.code = test.code and t.num < test.n  
)
select *
  from t

试一个例子here