Puxar outros campos usando DISTINTC em um campo

Galera meu problema é com a minha consulta, tipo assim, eu quero puxar todos os registro que possuem a mesma data em uma coluna do MySQL só que a data só pode repetir uma vez então eu usei DISTINCT para vim uma vez aquela data porém o DISTINCT só funciona com o campo que eu quero se adicionar mais um ao select o distinct já para de funcionar.

Esse SELECT só faz DISTINCT da data e dá certo porém sem puxar outro campo

Resultado do SELECT

Só que quando adiciono o campo “nomeEspecialidade”

Ele para de fazer o DISTINCT

O que eu estou fazendo de errado, por que até onde eu sei está certo :neutral_face:

Imagine esse cenário:

DATA       | ESPECIALIDADE
03/11/2018 | Cardiologia
04/11/2018 | Pediatria
03/11/2018 | Cardiologia

Quando se usa distinct vc terá:

DATA       | ESPECIALIDADE
03/11/2018 | Cardiologia
04/11/2018 | Pediatria

Até aqui tudo certo? Mas digamos que vc tenha na base:

DATA       | ESPECIALIDADE
03/11/2018 | Cardiologia
03/11/2018 | Pediatria

Quando se usa distinct:

DATA       | ESPECIALIDADE
03/11/2018 | Cardiologia
03/11/2018 | Pediatria

Isso pq o distinct testa todas as colunas, mesmo vc colocando-o na primeira como fez, pq ele testa a linha inteira, encontrou uma coluna diferente da anterior será exibido pq é distinto um do outro (e ele está certo!), ele só “esconde” os registros quando as linhas são exatamente iguais…

Para tentar resolver seu problema, vc terá que “sacrificar” alguns registros usando group by:

 SELECT data, nomEspecialidade FROM tbplantao WHERE...
 GROUP BY data;

Seguindo o exemplo anterior ficaria:

DATA       | ESPECIALIDADE
03/11/2018 | Cardiologia

Isso sim ele não repetiria e vai colocar sempre o primeiro registro encontrado daquela data, espero ter ajudado

Valeu mano, ajudo muito para problemas futuros com distinct, eu consegui fazer, mas usando dois selects kkk