Jump to content
Fórum Script Brasil
  • 0

(Resolvido) Duvida na sentença


NIK
 Share

Question

Pessoal... boa tarde

Trabalho com o SQLServer 2000 e o resultado de uma sentença minha está como abaixo:

CODIGO - ORDEM SERVIÇO

0231 - OS12-02515

0231 - OS12-02230

0231 - OS12-04550

Mas na verdade preciso que esses valores fiquem conforme abaixo:

CODIGO - ORDEM SERVIÇO

0231 - OS12-02515 / OS12-02230 / OS12-04550 (ou seja todas as ordens juntas em uma linha só

Alguém sabe como isso é possível.

Obrigado

NIK

Edited by NIK
Link to comment
Share on other sites

10 answers to this question

Recommended Posts

  • 0

Então seria com um loop mesmo...

Segue exemplo:

DECLARE @String VARCHAR(20) 
DECLARE @Valor VARCHAR(1) 
DECLARE @Fim int

SET @Valor = 'A'
SET @Fim = 1
SET @String = @Valor

WHILE @Fim <= 5 
BEGIN
    SET @String = @String + @Valor
    SET @Fim = @Fim + 1
END

select @String

Link to comment
Share on other sites

  • 0

Fulvio... beleza

Cara obrigado pela sentença mas ainda estou com um problema...

Quando rodo para meu caso retorna o erro = Subquery returned more than 1 value

Pois a minha sentença trás 3 linhas conforme coloquei abaixo e não somente uma como é seu exemplo....

Nesse caso como devo fazer, pois ele não consegue setar no @valor, pois são 3 linhas de retorno.

Valeu

NIK

Link to comment
Share on other sites

  • 0

você terá que pegar o resultado e gravar em uma temporária. Depois ir pegando os dados e concatenando (com o loop). você poderá criar um cursor para ir lendo a tabela temporária, ou criar uma coluna para controle (que acho melhor).

Se tiver alguma dúvida, pode postar... :)

Link to comment
Share on other sites

  • 0

Bom dia NIK,

Segue exemplo: :)

create TABLE #Tabela (Id INT, Dado VARCHAR(2))

INSERT INTO #Tabela VALUES (1,'AA')
INSERT INTO #Tabela VALUES (2,'BB')
INSERT INTO #Tabela VALUES (3,'CC')

DECLARE @String VARCHAR(20)
DECLARE @Fim INT
SET @Fim = 1
SET @String = ''

WHILE (SELECT COUNT(*)FROM #Tabela) >= @Fim
BEGIN
    SET @String = @String + (SELECT Dado FROM #Tabela WHERE [email protected])
    SET @Fim = @Fim + 1
END

select @String

OBS.: no caso do campo Id, pode-se criar um identity para facilitar o controle.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share



  • Forum Statistics

    • Total Topics
      150.2k
    • Total Posts
      647.4k
×
×
  • Create New...