私はCTEクエリを持っていますが、それについての概念は何もありません。そして、私はプログラミングに不慣れです。実際、クエリにQty列があり、qtyまで行を繰り返したいです。qtyが50に等しい場合、データセットは50の時間レコードを返します。qtyが1000千に等しい場合、クエリは10000千レコードを返します。次のクエリは、99 rcords未満になるまでは問題なく機能し、1000rocordで成長するにはどうすればよいですか。
よろしくお願いします。
SELECT * INTO #TableA
FROM
(
SELECT MIS_Request_Detail.vno, MIS_Request_Detail.IID
, MIS_Request_Detail.Qty-MIS_Request_Detail.BalQty qty,
1 RcvdQty, pk,
ItmMstr.IName, ItmMstr.UName, '' SrNo,
MIS_Request_Detail.Qty As ReqQty, MIS_Request_Detail.BalQty
, MIS_Request_Detail.Qty-MIS_Request_Detail.BalQty RemainQty
FROM MIS_Request_Detail INNER JOIN
view_MIS_Item_Master ItmMstr ON ItmMstr.IID=MIS_Request_Detail.IID
WHERE ReqType=1 AND MIS_Request_Detail.vno=@vno
) T
;WITH Nbrs ( Number ) AS (
SELECT 1 UNION ALL
SELECT 1 + Number FROM Nbrs WHERE Number < 99
)
SELECT A.vno,A.IID, A.IName, A.UName, CAST(SrNo AS VARCHAR(50)) SrNo
, CAST(N.Number AS varchar(50)) QTY, pk ReqDetpk, RcvdQty,
A.ReqQty, A.BalQty, A.RemainQty, 0 Color, 0 chked, 0 Pk, 0 AS isupdate
, '' AS isdeleted
FROM #TableA A
JOIN Nbrs N ON N.Number <= A.qty
ORDER BY IID, N.Number, pk