Ir para o conteúdo
x_soldier

Loop

Mensagens Recomendadas

x_soldier    0
x_soldier

Boas Pessoal!

Quero separar os valores do 2º campo por virgulas, pois tenho vários "CCTIT_CODIGO" a corresponderem a um "CLI_CODIGO".

O objectivo é ele não me dar várias linhas. Como poderei fazer isto?

SELECT {CLIENTES_CONTAS_TITULOS}.[CLI_CODIGO],{CLIENTES_CONTAS_TITULOS}.[CCTIT_CODIGO]
FROM {CLIENTES_CONTAS_TITULOS}
WHERE {CLIENTES_CONTAS_TITULOS}.[CLI_CODIGO] = '31497'

Desde já obrigado e bom ano  :confused:

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
HappyHippyHippo    1133
HappyHippyHippo

estas a dizer que tens varios registos com o mesmo valor nos dois campos da mesma tabela ?

o que queres dizer com "separar com virgula" ?

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
x_soldier    0
x_soldier

estas a dizer que tens varios registos com o mesmo valor nos dois campos da mesma tabela ?

o que queres dizer com "separar com virgula" ?

O que acontece é que para o mesmo código de cliente tenho várias carteiras... O que faz com que me dê varias linhas para o mesmo código de cliente. O que queria era que me desse apenas uma linha, numa coluna o código de cliente e na outra todos os códigos de carteiras separadas por virgula ou ponto e virgula.

Obrigado :confused:

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
HappyHippyHippo    1133
HappyHippyHippo

nao estou a ver bem a estrutura de tabelas que tens ... esta muito cunfuso o que estas a dizer ... faz ai um post com as tabelas onde tens a info que queres retornar (e campos)

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
KTachyon    272
KTachyon
SELECT tabela.campo1, tabela.campo2
FROM tabela
WHERE tabela.campo1 = 'xpto'
INTO OUTFILE '/somewhere/abc.txt'
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY ','

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
pmg    102
pmg

Usa o GROUP_CONCAT.

Exemplo não testado.

SELECT {CLIENTES_CONTAS_TITULOS}.[CLI_CODIGO],
       GROUP_CONCAT({CLIENTES_CONTAS_TITULOS}.[CCTIT_CODIGO] SEPARATOR ',')
FROM {CLIENTES_CONTAS_TITULOS}
GROUP BY {CLIENTES_CONTAS_TITULOS}.[CLI_CODIGO]

Exemplo testado :confused:

mysql> select codigo, code2 from cct;
+--------+-------+
| codigo | code2 |
+--------+-------+
|      1 |     2 |
|      1 |     3 |
|      1 |     4 |
|      2 |     4 |
|      2 |     5 |
|      3 |     6 |
+--------+-------+
6 rows in set (0.00 sec)

mysql> select codigo, group_concat(code2 separator ',') from cct group by codigo;
+--------+-----------------------------------+
| codigo | group_concat(code2 separator ',') |
+--------+-----------------------------------+
|      1 | 2,3,4                             |
|      2 | 4,5                               |
|      3 | 6                                 |
+--------+-----------------------------------+
3 rows in set (0.00 sec)

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
x_soldier    0
x_soldier

Usa o GROUP_CONCAT.

Exemplo não testado.

SELECT {CLIENTES_CONTAS_TITULOS}.[CLI_CODIGO],
       GROUP_CONCAT({CLIENTES_CONTAS_TITULOS}.[CCTIT_CODIGO] SEPARATOR ',')
FROM {CLIENTES_CONTAS_TITULOS}
GROUP BY {CLIENTES_CONTAS_TITULOS}.[CLI_CODIGO]

Exemplo testado :P

mysql> select codigo, code2 from cct;
+--------+-------+
| codigo | code2 |
+--------+-------+
|      1 |     2 |
|      1 |     3 |
|      1 |     4 |
|      2 |     4 |
|      2 |     5 |
|      3 |     6 |
+--------+-------+
6 rows in set (0.00 sec)

mysql> select codigo, group_concat(code2 separator ',') from cct group by codigo;
+--------+-----------------------------------+
| codigo | group_concat(code2 separator ',') |
+--------+-----------------------------------+
|      1 | 2,3,4                             |
|      2 | 4,5                               |
|      3 | 6                                 |
+--------+-----------------------------------+
3 rows in set (0.00 sec)

Obtenho a seguinte mensagem tanto para uma solução como para outra: Msg 102, Level 15, State 1, Line 1

Incorrect syntax near 'separator

Estarei a fazer algo errado?

Obrigado :confused:

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
pmg    102
pmg

Obtenho a seguinte mensagem tanto para uma solução como para outra: Msg 102, Level 15, State 1, Line 1

Incorrect syntax near 'separator

Estarei a fazer algo errado?

Tens a certeza que puseste o tópico no quadro correcto?

A tua base de dados (mais propriamente o teu SGBD) é o MySQL?

aquelas chavetas bem que me pareceram estranhas ...

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
x_soldier    0
x_soldier

Tens a certeza que puseste o tópico no quadro correcto?

A tua base de dados (mais propriamente o teu SGBD) é o MySQL?

aquelas chavetas bem que me pareceram estranhas ...

Tens razão deveria ter colocado em "sql server"... Sorry!

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
f-22    0
f-22

Boas,

Se bem percebi o que queres, tentei fazer-te um script. executa-o tenta perceber e adapta ao teu caso.

-- para criar uma tabela de testes
select * into tabela_teste
from (select 1 as id, 1 as outroId
union select 1, 2
union select 1, 3
union select 1, 4
union select 2, 1
union select 2, 2
union select 3, 2) t

-- so para veres a tabela que criaste
select * from tabela_teste

-- query
select id, STUFF((SELECT ','+Convert(varchar(50),t2.outroId) FROM tabela_teste t2 WHERE t2.id=t.id FOR XML PATH('')) , 1 , 1 , '' )
from tabela_teste as t
group by id

-- apaga a tabela de testes
drop table tabela_teste

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
x_soldier    0
x_soldier

Boas,

Se bem percebi o que queres, tentei fazer-te um script. executa-o tenta perceber e adapta ao teu caso.

-- para criar uma tabela de testes
select * into tabela_teste
from (select 1 as id, 1 as outroId
union select 1, 2
union select 1, 3
union select 1, 4
union select 2, 1
union select 2, 2
union select 3, 2) t

-- so para veres a tabela que criaste
select * from tabela_teste

-- query
select id, STUFF((SELECT ','+Convert(varchar(50),t2.outroId) FROM tabela_teste t2 WHERE t2.id=t.id FOR XML PATH('')) , 1 , 1 , '' )
from tabela_teste as t
group by id

-- apaga a tabela de testes
drop table tabela_teste

Obrigado pela ajuda Amigo :)

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora


×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade