Duplicar linhas de resultados SQL SERVER

06/09/2021

0

Prezados,
É possível duplicar uma linha de uma query em determinada quantidade?
Tenho a query abaixo e gostaria que ela repetisse 10 vezes o resultado. (10 linhas).
SELECT CHAVENFE, VOLUME
FROM GLGL_DOCUMENTOCLIENTES A
WHERE A.CHAVENFE = '42210958587080000294550010000084181707794103'
GROUP BY VOLUME,CHAVENFE
Isaque

Isaque

Responder

Post mais votado

06/09/2021

crie a seguinte user function:
CREATE FUNCTION NumbersTable (
  @fromNumber int,
  @toNumber int,
  @byStep int
) RETURNS TABLE
RETURN (
WITH CTE_NumbersTable AS (
  SELECT @fromNumber AS i
  UNION ALL
  SELECT i + @byStep
  FROM CTE_NumbersTable
  WHERE
  (i + @byStep) <= @toNumber
)
  SELECT * FROM CTE_NumbersTable
)

depois use o seguinte comando para repetir o resultado:
SELECT * FROM
(
  SELECT CHAVENFE, VOLUME
  FROM GLGL_DOCUMENTOCLIENTES
  WHERE CHAVENFE = '42210958587080000294550010000084181707794103'
  GROUP BY VOLUME,CHAVENFE
) TAB
CROSS APPLY dbo.NumbersTable(1,10,1)

Emerson Nascimento

Emerson Nascimento
Responder

Mais Posts

09/09/2021

Isaque

crie a seguinte user function:
CREATE FUNCTION NumbersTable (
  @fromNumber int,
  @toNumber int,
  @byStep int
) RETURNS TABLE
RETURN (
WITH CTE_NumbersTable AS (
  SELECT @fromNumber AS i
  UNION ALL
  SELECT i + @byStep
  FROM CTE_NumbersTable
  WHERE
  (i + @byStep) <= @toNumber
)
  SELECT * FROM CTE_NumbersTable
)

depois use o seguinte comando para repetir o resultado:
SELECT * FROM
(
  SELECT CHAVENFE, VOLUME
  FROM GLGL_DOCUMENTOCLIENTES
  WHERE CHAVENFE = '42210958587080000294550010000084181707794103'
  GROUP BY VOLUME,CHAVENFE
) TAB
CROSS APPLY dbo.NumbersTable(1,10,1)



Perfeito, Funcionou corretamente.

Muito Obrigado Emerson!
Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar