我有一个包含ItemID (primary),Name ,UPC,Price,Cost, etc.
现在我需要打印用户可以说的标签
我需要一个SQL语句,我将发送ItemID和每条记录的标签数量,它应该为每个标签返回一条记录,例如项目“ABC”的15条记录和项目“XYZ”的10条记录,等等
答案 0 :(得分:1)
SELECT <fields>
FROM Mytable
Where Item = 'ABC'
GO 10
将在10个结果集中连续10次从该表中选择这些字段。
实际上,听起来你需要在SQL中做你想做的事情,但是在你的调用应用程序中。
答案 1 :(得分:1)
我同意这应该在客户端进行,但如果你坚持,则每次记录重复100次并从中选择你需要的金额。
;WITH ATable AS (
SELECT Item = 'ABC'
UNION ALL SELECT Item = 'XYZ'
)
, Temp (Item, Amount) AS (
SELECT 'ABC', 15
UNION ALL SELECT 'XYZ', 10
)
, q AS (
SELECT ID = 1
, Item
FROM ATable
UNION ALL
SELECT ID = q.ID +1
, q.Item
FROM q
WHERE ID < 100
)
SELECT q.*
FROM q
INNER JOIN Temp t ON t.Item = q.Item
AND t.Amount >= q.ID
答案 2 :(得分:0)
您可以在下面创建动态表别名为r。适用于2047年的金额。
select t.*
from
(select label='ABC', required=15 union all
select label='XYZ', required=10) r
inner join tbl t
on t.ItemID = r.label
inner join master..spt_values v
on v.type=Number and v.number between 1 and r.required
order by t.ItemID