-按数量复制记录的SQL语句
高手请进-------求一个按数量复制记录的SQL语句
各位大虾,是这样的..
用户有一个表Products,结构如下:
物品名称 数量 单位 部门
------------ -------- ------- ---------
振动砂 1 台 木盒厂
刨花机 2 台 木盒厂
万能锯 1 台 木盒厂
现在求一SQL语句,当数量大于1时,
自动按数量多少复制多少条相同的记录到一个表里.
得出以下结果:
物品名称 数量 单位 部门
------------ -------- ------- ---------
振动砂 1 台 木盒厂
刨花机 1 台 木盒厂
刨花机 1 台 木盒厂
万能锯 1 台 木盒厂
...
------解决方案--------------------
各位大虾,是这样的..
用户有一个表Products,结构如下:
物品名称 数量 单位 部门
------------ -------- ------- ---------
振动砂 1 台 木盒厂
刨花机 2 台 木盒厂
万能锯 1 台 木盒厂
现在求一SQL语句,当数量大于1时,
自动按数量多少复制多少条相同的记录到一个表里.
得出以下结果:
物品名称 数量 单位 部门
------------ -------- ------- ---------
振动砂 1 台 木盒厂
刨花机 1 台 木盒厂
刨花机 1 台 木盒厂
万能锯 1 台 木盒厂
...
------解决方案--------------------
create table Products
(物品名称 varchar(10),数量 int,单位 varchar(5),部门 varchar(10))
insert into Products
select '振动砂',1,'台','木盒厂' union all
select '刨花机',2,'台','木盒厂' union all
select '万能锯',1,'台','木盒厂'
select a.物品名称,1 '数量',a.单位,a.部门
from Products a
cross apply
(select number from master.dbo.spt_values
where type='P' and number between 1 and a.数量) b
/*
物品名称 数量 单位 部门
---------- ----------- ----- ----------
振动砂 1 台 木盒厂
刨花机 1 台 木盒厂
刨花机 1 台 木盒厂
万能锯 1 台 木盒厂
(4 row(s) affected)
*/