Duvida em SQL ( mysql )

Opa :smiley:

Tenho uma tabela que possui uma coluna de data e as vezes, posso ter mais de 1 registro e a diferenca eh pela data. Tem como eu fazer um select com min() e ele soh me retornar o min se o registro existir mais de 1x?

Seria algo como:

select ASSOCIACAO.DT_CADASTRO_SISTEMA, ASSOCIACAO.COD_BARRAS_TALAO, MENSAGEM_RECEBIDA.COD_BARRAS_TALAO, 
case (select count(*) from MENSAGEM_RECEBIDA where MENSAGEM_RECEBIDA.COD_BARRAS_TALAO = ASSOCIACAO.COD_BARRAS_TALAO > 1, min(MENSAGEM_RECEBIDA.DATA_HORA), null),
MENSAGEM_RECEBIDA.COD_BARRAS_OPERADOR, MENSAGEM_RECEBIDA.COD_BARRAS_PONTO_VENDA from ASSOCIACAO
left join MENSAGEM_RECEBIDA on ASSOCIACAO.COD_BARRAS_TALAO = MENSAGEM_RECEBIDA.COD_BARRAS_TALAO
where ASSOCIACAO.ID_USUARIO_OPERADOR is null 
and ASSOCIACAO.DT_DEVOLUCAO_SUPERVISOR is null
and ASSOCIACAO.DT_CADASTRO_SISTEMA = '2009-05-17'
order by ASSOCIACAO.COD_BARRAS_TALAO

Mas assim a query nao executa. Isso que eu quero fazer, funciona?

Abracos

boa tarde,

não entendi sua dúvida.Por favor seja mais específico.

vlw

Vc leu a query? Ali tem um Case q eu inventei e queria q ele funcionasse assim: se o count(*) for maior que 1, entao eu busco pelo min(DT_BLABLABLA) e se for diferente de maior que 1, entao ele retorna NULL.

Entendeu?

select ASSOCIACAO.DT_CADASTRO_SISTEMA, ASSOCIACAO.COD_BARRAS_TALAO, MENSAGEM_RECEBIDA.COD_BARRAS_TALAO, 
if (select count(*) from MENSAGEM_RECEBIDA where MENSAGEM_RECEBIDA.COD_BARRAS_TALAO = ASSOCIACAO.COD_BARRAS_TALAO > 1, min(MENSAGEM_RECEBIDA.DATA_HORA), null) as DATA_DOIDA,
MENSAGEM_RECEBIDA.COD_BARRAS_OPERADOR, MENSAGEM_RECEBIDA.COD_BARRAS_PONTO_VENDA from ASSOCIACAO
left join MENSAGEM_RECEBIDA on ASSOCIACAO.COD_BARRAS_TALAO = MENSAGEM_RECEBIDA.COD_BARRAS_TALAO
where ASSOCIACAO.ID_USUARIO_OPERADOR is null 
and ASSOCIACAO.DT_DEVOLUCAO_SUPERVISOR is null
and ASSOCIACAO.DT_CADASTRO_SISTEMA = '2009-05-17'
order by ASSOCIACAO.COD_BARRAS_TALAO

a ideia seria essa…mas ele nao roda