/ / SQL - Selecionando todos os registros exclusivos mais recentes - sql, ms-access, excel-vba, vba, excel

SQL - Selecionando todos os registros exclusivos mais recentes - sql, ms-access, excel-vba, vba, excel

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 № 1

Embora 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)