Array
(
)

Select

Dgsfilho
   - 03 ago 2006

Gostaria de saber como faço para selecionar todos os registros de uma tabela que possuam mais de uma instância, tipo:

Suponhamos que eu tenha uma tabela de atendimentos que tem os campos:

cod_atend, data_atend, cod_cliente.

Com os seguintes registros:

1, 01/08/2006, 5
2, 01/08/2006, 1
3, 01/08/2006, 2
4, 01/08/2006, 5
5, 01/08/2006, 1
6, 02/08/2006, 3
7, 02/08/2006, 4

tenho sete atendimentos onde no dia 01/08 o cliente 5 e o cliente 1 foram atendidos duas vezes, então gostaria de saber como fazer para o meu select retornar apenas esses quatro registros:

1, 01/08/2006, 5
4, 01/08/2006, 5
2, 01/08/2006, 1
5, 01/08/2006, 1

Psergio.p
   - 03 ago 2006

Ficaria assim:

SELECT cod_atend,data_atend,cod_cliente
FROM atendimento
WHERE EXISTS(SELECT COUNT(ate.cod_cliente) FROM atendimento ate
WHERE ate.cod_cliente = atendimento.cod_cliente AND ate.data_atend = atendimento.data_atend
HAVING COUNT(ate.cod_cliente) > 1)

Wagnerbianchi
   - 11 ago 2006

Olá DGSFilho,

Você não gostaria de retornar os nomes dos clientes também?

Abraço!!

Dgsfilho
   - 12 ago 2006

Sim, mas já consigo isso fazendo uma join, eu só não sabia fazer aparecer os registro repetidos. Obrigado pela antenção wagnerbianchi

Wagnerbianchi
   - 12 ago 2006

Disponha. . .qualquer outra dúvida, continue usando o fórum!!

:wink: