Estou com dificuldades para criar uma consulta SQL para selecionar alguns registros de um banco de dados do Access (usando o Excel VBA).
Um recorte de uma das tabelas (vamos chamá-lo de "tabela1") possui as seguintes colunas:
| my_id | your_id | phase |
| 1 | 1 | Open |
| 2 | 1 | Close |
| 3 | 2 | Open |
| 4 | 3 | Close |
| 5 | 2 | Close |
| 6 | 3 | Open |
O campo "my_id" sempre será um valor exclusivo, enquanto o campo "your_id" pode conter duplicatas.
O que eu gostaria de fazer é selecionar tudo da tabela para o registro mais recente do "your_id", onde a fase é "Close". Isso significa que, na tabela de exemplo acima, ele selecionaria 5, 4 e 2.
Espero que isso faça sentido, desculpe se não - estou lutando para articular o que quero dizer!
obrigado
Respostas:
1 para resposta № 1Embora do seu exemplo, se você apenas adicionar ondeconditin as phase = "Close" u obterá os registros de 5,4 e 2. Mas estou assumindo que possa haver cenários (não no seu exemplo) em que mais de um registro possa vir com status como Close para qualquer your_id, portanto consulta deve ficar assim
Select * from table1 where my_id in (
Select Max(My_Id) from table1 where phase="Close" group by your_id)