Inquérito 008, "A folha que ficou de fora": solução passo a passo
O boletim
Em 24 de junho o Ministério Público requisitou a remessa do inquérito 14 em trinta dias. O prazo vence na quinta-feira.
O inquérito 14 é de 22 de agosto de 1997: a Kombi escolar que saiu da pista no quilômetro 11 da Estrada do Café com dezenove crianças dentro. Nove se machucaram. Não morreu ninguém. Foi arquivado sem conclusão em 1998.
O doutor mandou imprimir. O SISPOL respondeu que o registro 14 não existe.
Ele abriu sindicância, protocolo 400, e escreveu a frase que virou a ordem de serviço: "quero saber quem tirou o que do arquivo desta delegacia, quando, e com que autorização".
Seu Jaime pediu para você abrir o caderno em cima da mesa e disse que agora não é mais palpite: são oito números anotados por você desde março. Disse também que até hoje a máquina só respondeu uma pergunta de cada vez, sobre uma gaveta de cada vez, e que a partir de agora vai ser preciso pedir duas gavetas na mesma frase — porque o nome de quem fez isso não está escrito em lugar nenhum: está espalhado entre três gavetas que nunca se falaram.
Seis pessoas deram depoimento à sindicância, de dentro e de fora desta casa. Seu Jaime deu o dele antes de ser chamado. O doutor deu o dele também, e pediu que ficasse escrito.
O que o caso ensina: INNER JOIN.
Pergunta 1
Comece pelo que sobrou. Traga do livro do balcão todo papel que pediu o inquérito 14, na ordem em que chegaram.
Ver as dicas do jogo
- Comece pelo que sobrou. Traga, da tabela `protocolo`, o `id`, a `data`, o `tipo`, o `assunto` e o `requerente` de todo papel cujo `assunto` fala do inquérito 14, em ordem de `data`. O livro escreve inquérito com acento.
- O pedaço 'inquérito 14', com acento, no meio do `assunto`: LIKE com porcento dos dois lados. A fila é pela `data`.
- Escreva: `SELECT id, data, tipo, assunto, requerente FROM protocolo WHERE assunto LIKE '%inquérito 14%' ORDER BY data;`
Ver a consulta que resolve
SELECT id, data, tipo, assunto, requerente FROM protocolo WHERE assunto LIKE '%inquérito 14%' ORDER BY data;
LIKE com porcento dos dois lados acha o pedaço no meio do texto, e o acento conta: 'inquerito' sem acento não é o mesmo pedaço que 'inquérito'. É o LIKE do caso 3 e o ORDER BY do caso 5, que continuam valendo.
Resultado
| id | data | tipo | assunto | requerente |
|---|---|---|---|---|
| 247 | 2002-07-29 | pedido | Pedido de cópia do inquérito 14 | 12 |
| 345 | 2003-03-14 | pedido | Pedido de cópia integral do inquérito 14 | 13 |
| 370 | 2003-05-19 | pedido | Pedido de vista dos autos do inquérito 14 | 13 |
| 378 | 2003-06-06 | oficio | Notificação do Ministério Público sobre o inquérito 14 | 0 |
| 387 | 2003-06-24 | requisicao | Requisição do Ministério Público: remessa do inquérito 14 em 30 dias | 0 |
Pergunta 2
Antes de juntar uma gaveta com a outra, conheça a dos logins: traga cada login do SISPOL.
Ver as dicas do jogo
- Antes de juntar uma gaveta com a outra, conheça a dos logins. Traga, da tabela `usuario`, o `id`, o `login`, o `pessoa_id`, o `cargo` e o `ativo` de cada login do SISPOL.
- É uma gaveta de sete linhas e você quer todas: não precisa de condição.
- Escreva: `SELECT id, login, pessoa_id, cargo, ativo FROM usuario;`
Ver a consulta que resolve
SELECT id, login, pessoa_id, cargo, ativo FROM usuario;
A gaveta `usuario` é uma ponte. De um lado, o `id` do login, que é o número que o livro de acesso anota em cada operação; do outro, o `pessoa_id`, que é o número da ficha na gaveta `pessoa`. Os dois números nunca são iguais, e é por isso que na próxima pergunta as gavetas vão ter de conversar em vez de você adivinhar.
Resultado
| id | login | pessoa_id | cargo | ativo |
|---|---|---|---|---|
| 11 | jfontenele | 1 | escrivão | 1 |
| 12 | wbraganca | 2 | delegado | 1 |
| 13 | sbortolotto | 3 | escrevente | 1 |
| 14 | vprestes | 4 | investigador | 1 |
| 15 | gandrade | 5 | investigador | 1 |
| 16 | nvidal | 7 | delegado | 0 |
| 17 | tecnico | 0 | suporte SISPOL | 1 |
Pergunta 3
O SISPOL anota cada baixa no livro de acesso, só com o número do login. Traga cada baixa, com a hora, o número da ocorrência e o login escrito por extenso, na ordem em que aconteceram.
Ver as dicas do jogo
- O SISPOL anota cada baixa no livro de acesso, a tabela `acesso`, mas guarda só o número do login. Traga o `momento`, a `ocorrencia` e o `login`, que está na tabela `usuario`, de toda linha de `acesso` com a `operacao` igual a baixa, em ordem de `momento`.
- `FROM acesso INNER JOIN usuario ON usuario.id = acesso.usuario_id` junta as duas gavetas. As duas têm coluna `id`: escreva o nome da gaveta na frente de cada coluna, e peça `acesso.operacao = 'baixa'`.
- Escreva: `SELECT acesso.momento, acesso.ocorrencia, usuario.login FROM acesso INNER JOIN usuario ON usuario.id = acesso.usuario_id WHERE acesso.operacao = 'baixa' ORDER BY acesso.momento;`
Ver a consulta que resolve
SELECT acesso.momento, acesso.ocorrencia, usuario.login FROM acesso INNER JOIN usuario ON usuario.id = acesso.usuario_id WHERE acesso.operacao = 'baixa' ORDER BY acesso.momento;
`INNER JOIN` junta duas tabelas numa só, linha com linha, e o `ON` diz o par: cada linha de `acesso` casa com a linha de `usuario` cujo `id` é o `usuario_id` dela. Sem o `ON`, a máquina casa cada baixa com cada um dos sete usuários, e as treze linhas viram noventa e uma. E como `acesso` e `usuario` têm, as duas, uma coluna `id`, a coluna vai com o nome da tabela na frente (`usuario.id`): sem isso a máquina responde ambiguous column name, que quer dizer que ela não sabe de qual das duas você está falando.
Resultado
| momento | ocorrencia | login |
|---|---|---|
| 2002-03-19 21:48 | 71 | wbraganca |
| 2002-03-19 21:51 | 96 | wbraganca |
| 2002-03-19 21:55 | 131 | wbraganca |
| 2002-08-12 20:31 | 152 | wbraganca |
| 2002-10-24 21:12 | 177 | wbraganca |
| 2002-10-24 21:16 | 179 | wbraganca |
| 2002-11-05 20:57 | 27 | wbraganca |
| 2003-03-21 21:03 | 212 | wbraganca |
| 2003-05-26 20:44 | 226 | wbraganca |
| 2003-06-13 21:29 | 230 | wbraganca |
| 2003-06-30 22:58 | 233 | wbraganca |
| 2003-06-30 23:06 | 234 | wbraganca |
| 2003-06-30 23:14 | 14 | wbraganca |
Pergunta 4, a que o caso puxa no meio do caminho
O Seu Jaime quer ver quem mais veio a este balcão falar da Falcão e da escola. Traga os papéis sobre a Viação Falcão ou sobre transporte escolar, com o nome de quem trouxe cada um, em ordem de data.
Ver as dicas do jogo
- Volte à tabela `protocolo`. Traga os papéis cujo `assunto` fala da Viação Falcão ou do transporte escolar, em ordem de `data`: o `id`, a `data`, o `assunto`, a `ocorrencia` que o papel gerou e o `nome` de quem trouxe, tirado da tabela `pessoa`.
- `FROM protocolo INNER JOIN pessoa ON pessoa.id = protocolo.requerente`. Os dois pedaços do `assunto` vão com OR: `protocolo.assunto LIKE '%Falcão%' OR protocolo.assunto LIKE '%transporte escolar%'`, em ordem de `protocolo.data`.
- Escreva: `SELECT protocolo.id, protocolo.data, protocolo.assunto, protocolo.ocorrencia, pessoa.nome FROM protocolo INNER JOIN pessoa ON pessoa.id = protocolo.requerente WHERE protocolo.assunto LIKE '%Falcão%' OR protocolo.assunto LIKE '%transporte escolar%' ORDER BY protocolo.data;`
Ver a consulta que resolve
SELECT protocolo.id, protocolo.data, protocolo.assunto, protocolo.ocorrencia, pessoa.nome FROM protocolo INNER JOIN pessoa ON pessoa.id = protocolo.requerente WHERE protocolo.assunto LIKE '%Falcão%' OR protocolo.assunto LIKE '%transporte escolar%' ORDER BY protocolo.data;
`INNER JOIN` só traz a linha que acha par do outro lado. Papel com `requerente` zero é papel da própria casa, e zero não é `id` de ninguém na gaveta `pessoa`: esses papéis ficam fora do resultado, e sobra só o que foi trazido por gente.
Resultado
| id | data | assunto | ocorrencia | nome |
|---|---|---|---|---|
| 62 | 2001-05-22 | Reclamação sobre transporte escolar — linha do Alto do Cruzeiro | 71 | Zulmira Caetano |
| 110 | 2001-09-13 | Reclamação de superlotação no transporte escolar — linha do sítio | 96 | Doralice Quirino da Mata |
| 181 | 2002-02-26 | Queixa de Marlene Sardinha contra a Viação Falcão | 131 | Marlene Sardinha |
| 223 | 2002-06-04 | Acidente sem vítimas — ônibus da Viação Falcão no km 11 da Estrada do Café | 152 | Osmar Trentini |
| 277 | 2002-10-09 | Reclamação sobre transporte escolar — linha do sítio, da Viação Falcão | 179 | Genésio Quirino da Mata |
| 281 | 2002-10-21 | Pedido de cópia das vistorias da frota da Viação Falcão | 0 | Lidiane Sardinha |
| 285 | 2002-11-01 | Pedido de certidão de ocorrências do veículo AJE-4477, da Viação Falcão | 0 | Lidiane Sardinha |
| 347 | 2003-03-18 | Perturbação do sossego — oficina da Viação Falcão de madrugada | 212 | Iracema Boaventura |
Pergunta 5
Traga do livro de ponto quem estava na delegacia em cada uma das oito noites em que houve baixa, com o nome de cada um ao lado do número, noite por noite.
Ver as dicas do jogo
- Traga, da tabela `ponto`, a `data`, o `pessoa_id`, a `entrada`, a `saida` e a `situacao`, com o `nome` de cada pessoa ao lado, tirado da tabela `pessoa`, de todo mundo que bateu ponto na delegacia, o `local_id` 1, nas oito datas em que houve baixa, em ordem de `data`.
- `FROM ponto INNER JOIN pessoa ON pessoa.id = ponto.pessoa_id`; peça `ponto.local_id = 1` e as oito datas das baixas numa lista, depois de IN, na coluna `ponto.data`, e ordene por `ponto.data`.
- Escreva: `SELECT ponto.data, ponto.pessoa_id, pessoa.nome, ponto.entrada, ponto.saida, ponto.situacao FROM ponto INNER JOIN pessoa ON pessoa.id = ponto.pessoa_id WHERE ponto.local_id = 1 AND ponto.data IN ('2002-03-19', '2002-08-12', '2002-10-24', '2002-11-05', '2003-03-21', '2003-05-26', '2003-06-13', '2003-06-30') ORDER BY ponto.data;`
Ver a consulta que resolve
SELECT ponto.data, ponto.pessoa_id, pessoa.nome, ponto.entrada, ponto.saida, ponto.situacao FROM ponto INNER JOIN pessoa ON pessoa.id = ponto.pessoa_id WHERE ponto.local_id = 1 AND ponto.data IN ('2002-03-19', '2002-08-12', '2002-10-24', '2002-11-05', '2003-03-21', '2003-05-26', '2003-06-13', '2003-06-30') ORDER BY ponto.data;
O `JOIN` também serve só para pôr um nome ao lado de um número: o livro de ponto guarda `pessoa_id`, e a gaveta `pessoa` diz de quem é. O `IN` do caso 4 pede as oito datas de uma vez, e o `ORDER BY` põe as noites em fila. No plantão a saída fica em branco, porque o turno acaba no dia seguinte e o livro de 1978 nunca soube lidar com isso.
Resultado
| data | pessoa_id | nome | entrada | saida | situacao |
|---|---|---|---|---|---|
| 2002-03-19 | 1 | Jaime Fontenele de Abreu | 08:00 | 17:30 | normal |
| 2002-03-19 | 2 | Wilson Tadeu Bragança | 08:10 | 18:05 | normal |
| 2002-03-19 | 3 | Sirlei Aparecida Bortolotto | 07:55 | 22:10 | normal |
| 2002-03-19 | 4 | Valdemar Prestes | 09:00 | 18:00 | normal |
| 2002-03-19 | 5 | Getúlio Andrade | 08:00 | 18:00 | normal |
| 2002-03-19 | 6 | Aparecido Rangel | 18:00 | plantao | |
| 2002-08-12 | 1 | Jaime Fontenele de Abreu | 08:00 | 17:30 | normal |
| 2002-08-12 | 2 | Wilson Tadeu Bragança | 08:20 | 17:50 | normal |
| 2002-08-12 | 3 | Sirlei Aparecida Bortolotto | 08:00 | 21:05 | normal |
| 2002-08-12 | 4 | Valdemar Prestes | falta | ||
| 2002-08-12 | 5 | Getúlio Andrade | 08:00 | 18:10 | normal |
| 2002-08-12 | 6 | Aparecido Rangel | 18:00 | plantao | |
| 2002-10-24 | 1 | Jaime Fontenele de Abreu | 08:00 | 17:30 | normal |
| 2002-10-24 | 2 | Wilson Tadeu Bragança | externo | ||
| 2002-10-24 | 3 | Sirlei Aparecida Bortolotto | 08:00 | 21:40 | normal |
| 2002-10-24 | 4 | Valdemar Prestes | 08:30 | 17:45 | normal |
| 2002-10-24 | 5 | Getúlio Andrade | externo | ||
| 2002-10-24 | 6 | Aparecido Rangel | ferias | ||
| 2002-11-05 | 1 | Jaime Fontenele de Abreu | 08:00 | 17:30 | normal |
| 2002-11-05 | 2 | Wilson Tadeu Bragança | 08:05 | 18:30 | normal |
| 2002-11-05 | 3 | Sirlei Aparecida Bortolotto | 08:00 | 21:20 | normal |
| 2002-11-05 | 4 | Valdemar Prestes | 09:10 | 18:20 | normal |
| 2002-11-05 | 5 | Getúlio Andrade | 08:00 | 18:00 | normal |
| 2002-11-05 | 6 | Aparecido Rangel | 18:00 | plantao | |
| 2003-03-21 | 1 | Jaime Fontenele de Abreu | 08:00 | 17:30 | normal |
| 2003-03-21 | 2 | Wilson Tadeu Bragança | 08:15 | 18:10 | normal |
| 2003-03-21 | 3 | Sirlei Aparecida Bortolotto | 07:50 | 21:35 | normal |
| 2003-03-21 | 4 | Valdemar Prestes | 08:40 | 18:00 | normal |
| 2003-03-21 | 5 | Getúlio Andrade | 08:00 | 17:50 | normal |
| 2003-03-21 | 6 | Aparecido Rangel | ferias | ||
| 2003-05-26 | 1 | Jaime Fontenele de Abreu | 08:00 | 17:30 | normal |
| 2003-05-26 | 2 | Wilson Tadeu Bragança | 08:00 | 17:40 | normal |
| 2003-05-26 | 3 | Sirlei Aparecida Bortolotto | 08:00 | 21:15 | normal |
| 2003-05-26 | 4 | Valdemar Prestes | externo | ||
| 2003-05-26 | 5 | Getúlio Andrade | 08:00 | 18:00 | normal |
| 2003-05-26 | 6 | Aparecido Rangel | 18:00 | plantao | |
| 2003-06-13 | 1 | Jaime Fontenele de Abreu | 08:00 | 17:30 | normal |
| 2003-06-13 | 2 | Wilson Tadeu Bragança | 08:10 | 19:00 | normal |
| 2003-06-13 | 3 | Sirlei Aparecida Bortolotto | 07:55 | 22:05 | normal |
| 2003-06-13 | 4 | Valdemar Prestes | 08:30 | 20:50 | normal |
| 2003-06-13 | 5 | Getúlio Andrade | 08:00 | 18:00 | normal |
| 2003-06-13 | 6 | Aparecido Rangel | ferias | ||
| 2003-06-30 | 1 | Jaime Fontenele de Abreu | licenca | ||
| 2003-06-30 | 2 | Wilson Tadeu Bragança | externo | ||
| 2003-06-30 | 3 | Sirlei Aparecida Bortolotto | 08:00 | 23:40 | normal |
| 2003-06-30 | 4 | Valdemar Prestes | 08:30 | 18:15 | normal |
| 2003-06-30 | 5 | Getúlio Andrade | 08:00 | 18:00 | normal |
| 2003-06-30 | 6 | Aparecido Rangel | 18:00 | plantao |
Pergunta 6
Traga os depoimentos do inquérito 14 que a pergunta do doutor queria de verdade: cada folha, com o nome de quem depôs, se foi juntada, quando entrou na máquina e com que login.
Ver as dicas do jogo
- O inquérito 14 não existe mais, mas a tabela `depoimento` guarda o número da ocorrência em cada folha. Traga, dos depoimentos com `ocorrencia_id` 14, em ordem de `momento`: o `momento`, o `nome` de quem depôs, tirado da tabela `pessoa`, o `juntado`, o `digitado_em`, o `login` de quem digitou, tirado da tabela `usuario`, e o `texto`.
- Leia a consulta do doutor de fora para dentro: o `FROM` e o primeiro `JOIN` estão certos. No segundo, veja que coluna de `depoimento` ele usou para achar o login: quem digitou a folha está em `digitado_por`.
- Escreva: `SELECT depoimento.momento, pessoa.nome, depoimento.juntado, depoimento.digitado_em, usuario.login, depoimento.texto FROM depoimento INNER JOIN pessoa ON pessoa.id = depoimento.pessoa_id INNER JOIN usuario ON usuario.id = depoimento.digitado_por WHERE depoimento.ocorrencia_id = 14 ORDER BY depoimento.momento;`
Ver a consulta que resolve
SELECT depoimento.momento, pessoa.nome, depoimento.juntado, depoimento.digitado_em, usuario.login, depoimento.texto FROM depoimento INNER JOIN pessoa ON pessoa.id = depoimento.pessoa_id INNER JOIN usuario ON usuario.id = depoimento.digitado_por WHERE depoimento.ocorrencia_id = 14 ORDER BY depoimento.momento;
Os dois `JOIN` aqui saem da mesma gaveta, `depoimento`, para duas gavetas diferentes: um vai buscar o nome de quem depôs, o outro o login de quem digitou. A ocorrência 14 não existe mais, mas o número dela continua escrito em cada depoimento, e o `WHERE` acha por esse número.
Resultado
| momento | nome | juntado | digitado_em | login | texto |
|---|---|---|---|---|---|
| 1997-08-22 18:40 | Rubens Sanches | 1 | 2001-02-19 | sbortolotto | eu vinha devagar porque a descida da Estrada do Café é ruim; pisei no freio antes da curva e o pedal foi ao fundo. O freio estava dando trabalho fazia tempo e eu já tinha falado isso na garagem. |
| 1997-08-25 10:15 | Ademir Falcão | 1 | 2001-02-19 | sbortolotto | a manutenção estava em dia, a Kombi foi à oficina em junho e voltou liberada. Não recebi reclamação nenhuma do motorista nem da escola. |
| 1997-08-26 14:00 | Rute Beltrão | 1 | 2001-02-19 | sbortolotto | eu estava no portão da escola quando a Kombi saiu, quatro e vinte da tarde, com dezenove crianças dentro. O veículo tem doze lugares e isso todo mundo aqui sabe. |
| 1997-09-02 09:30 | Lidiane Sardinha | 1 | 2001-02-19 | sbortolotto | eu ia sentada no corredor porque não tinha banco para todo mundo. Quando bateu eu não vi nada, só lembro da perna e do barulho das crianças. |
| 1997-09-04 15:10 | Marlene Sardinha | 1 | 2001-02-19 | sbortolotto | minha filha voltou operada de Londrina e vai mancar para o resto da vida. Eu quero saber quem responde por isso e até hoje ninguém me respondeu. |
| 1997-09-11 16:00 | Sebastião Gouveia | 0 | 2001-02-19 | sbortolotto | condenei o sistema de freio dessa Kombi em 12 de junho de 1997, anotei na ordem de serviço e avisei o proprietário pessoalmente. Não fizeram o serviço. |
Quem foi
Ver o culpado e a prova
O culpado é Sirlei Aparecida Bortolotto.
As provas que fecham o caso:
- O ponto da Dona Sirlei em 19 de março de 2002, noite de baixa: saída às 22h10.
- O ponto da Dona Sirlei em 12 de agosto de 2002, noite de baixa: saída às 21h05.
- O ponto da Dona Sirlei em 24 de outubro de 2002, noite de baixa: saída às 21h40.
- O ponto da Dona Sirlei em 5 de novembro de 2002, noite de baixa: saída às 21h20.
- O ponto da Dona Sirlei em 21 de março de 2003, noite de baixa: saída às 21h35.
- O ponto da Dona Sirlei em 26 de maio de 2003, noite de baixa: saída às 21h15.
- O ponto da Dona Sirlei em 13 de junho de 2003, noite de baixa: saída às 22h05.
- O ponto da Dona Sirlei em 30 de junho de 2003: saída às 23h40. O inquérito 14 foi baixado às 23h14.
- O depoimento do Rubão no inquérito de 1997, digitado com o login sbortolotto em 19 de fevereiro de 2001.
- O depoimento do Seu Ademir no inquérito de 1997, digitado com o login sbortolotto em 19 de fevereiro de 2001.
- O depoimento da Dona Rute no inquérito de 1997, digitado com o login sbortolotto em 19 de fevereiro de 2001.
- O depoimento da Lidiane no inquérito de 1997, digitado com o login sbortolotto em 19 de fevereiro de 2001.
- O depoimento da Marlene no inquérito de 1997, digitado com o login sbortolotto em 19 de fevereiro de 2001.
- O depoimento do Seu Tião no inquérito de 1997, digitado com o login sbortolotto em 19 de fevereiro de 2001, o único que nunca foi juntado aos autos.
- A Dona Sirlei saiu às 23h40 na noite em que o 14 foi baixado, e foi o login dela que digitou a folha do Seu Tião, a que nunca entrou nos autos.
Você não precisou chamar ninguém. Dona Sirlei estava na porta da sala do arquivo com a bolsa no ombro, como quem já ia embora, e ficou.
Contou de trás para frente, porque de frente para trás não dava: o prazo do promotor; a queixa da Marlene, em 2002, que ela mesma datilografou com o nome do Falcão; um homem educado que apertou a mão dela numa festa e agradeceu sem dizer por quê; e uma folha de 1997 que o doutor Nicanor mandou segurar até segunda ordem. Disse também que a caixa de folhas rasgadas que o Seu Jaime tirou da lixeira em fevereiro era dela: antes de baixar cada registro, ela imprimia, lia de novo e rasgava.
No balcão, disse: aqui tudo fica escrito. Quase tudo. Tirou da bolsa um envelope pardo com a folha original — o depoimento do Seu Tião, de 11 de setembro de 1997 — e pediu protocolo.
Seu Jaime molhou o carimbo e não conseguiu ler o número. Você leu por ele, em voz alta: quatrocentos e um. Ele carimbou a folha do Seu Tião e prendeu na pasta do inquérito 14, atrás das outras cinco, onde ela devia estar desde setembro de 1997.
A Dona Sirlei assinou o termo com a caneta que tirou do cabelo. Vai responder por inserção de dados falsos e por prevaricação. Ninguém aplaudiu.
O doutor trocou a senha no mesmo dia. A Lidiane passou no balcão à tarde, recebeu uma cópia da folha do Tião e não disse nada. O Seu Ademir não foi indiciado hoje.
No fim do expediente, o papel que ficava embaixo do teclado do doutor desde 2001, com a senha escrita, estava amassado na lixeira da sala do arquivo, a mesma de onde o Seu Jaime tirou em fevereiro a caixa de folhas rasgadas.