GARANTIR DESCONTO

Fórum Como usar INNER JOIN sem repetções de registros... #265870

18/01/2005

0

Abaixo está SQL que estou usando pra exibir o relatório entre as Tabelas: Serviço e Tabela_convenio, o resultado funciona perfeitamente, mas está repetindo os registros. Como devo proceder para não repetir os registros...

Estrurada das tabelas:

servico: servico_id, servico_nome, ramo_id, servico_ativo;

tabela_convenio: convenio_id, servico_id, valor, data;


SELECT * FROM servico as s INNER JOIN tabela_convenio as c ON (s.servico_id = c.servico_id)


Walfrido

Walfrido

Responder

Posts

19/01/2005

Adilsond

SELECT distinct *
FROM servico as s
  INNER JOIN tabela_convenio as c
    ON (s.servico_id = c.servico_id)


ou

SELECT *
FROM servico as s
WHERE s.servico_id IN (SELECT DISTINCT c.servico_id
                       FROM tabela_convenio as c)



Responder

Gostei + 0

19/01/2005

Aroldo Zanela

Colega,

Para evitar expansão de dados, utilize todas as colunas que identifiquem exclusivamente um registro na cláusula [b:4375044612]ON[/b:4375044612]. Entretanto, acredito que a repetição mencionada está correta (produto cartesiano), minha sugestão é: utilize agrupamentos no relatório para representar ordenamente as informações. Exemplo:


==============================
Servico: 99 - XXXXXXXXXXXXXXXX

Convênio  Data           Valor
--------  --------  ----------
99999999  99/99/99  123.000,00
99999999  99/99/99  123.000,00
99999999  99/99/99  123.000,00
99999999  99/99/99  123.000,00
==============================
Servico: 99 - XXXXXXXXXXXXXXXX

Convênio  Data           Valor
--------  --------  ----------
99999999  99/99/99  123.000,00
99999999  99/99/99  123.000,00
==============================
Servico: 99 - XXXXXXXXXXXXXXXX

Convênio  Data           Valor
--------  --------  ----------
99999999  99/99/99  123.000,00
99999999  99/99/99  123.000,00
99999999  99/99/99  123.000,00
...



Responder

Gostei + 0

19/01/2005

Walfrido

Ah estou usando ADO com Access...

Usei a cláusula

SELECT DISTINCT *
FROM servico
INNER JOIN tabela_convenio
ON (servico.servico_id = tabela_convenio.servico_id)

mas não deu certo...


Aroldo tentei assim tbm, mas deu erro...

SELECT servico.servico_id, servico.servico_nome, servico.ramo_id, servico.servico_ativo, convenio.convenio_id, convenio.servico_id, convenio.tabela_valor, convenio.tabela_data

FROM servico as s

INNER JOIN tabela_convenio as c

ON (s.servico_id = c.servico_id)

tbm nao deu,


Responder

Gostei + 0

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

Aceitar