Soluções da Delegacia SQL

Inquérito 003, "Meia placa": solução passo a passo

O boletim

Osmar Trentini, dono do posto da Estrada do Café, tinha um muro de bloco nos fundos, ao lado da bomba do diesel. Às seis e vinte e cinco da tarde de quarta-feira alguém derrubou dois metros desse muro dando ré e foi embora sem parar.

Ocorrência 217, categoria dano. Prejuízo de novecentos reais em bloco, cimento e um dia de pedreiro.

A única testemunha é Dona Iracema Boaventura, setenta e dois anos, que estava na parada do ônibus do outro lado da pista. Dona Cema enxerga bem de longe e mal de perto. Ela diz, e repete sem mudar uma palavra: era um caminhão baú, branco, e a placa começava com A, K e mais uma letra que ela não pegou, e terminava com sete.

Começa com AK, termina com 7, e o meio ficou na estrada. A chefia quer a placa inteira e quer quem estava dirigindo. Quatro nomes deram depoimento no balcão.

O que o caso ensina: LIKE.

Pergunta 1

Muro no chão não é novidade nesta cidade. Traga do arquivo toda ocorrência que fala em muro.

Ver as dicas do jogo
  1. Traga da tabela `ocorrencia` o `id`, a `data`, a `hora` e o `resumo` de toda ocorrência cujo `resumo` fala em muro.
  2. Você procura uma palavra no meio do texto: é LIKE, com o porcento dos dois lados de 'muro'.
  3. Escreva: `SELECT id, data, hora, resumo FROM ocorrencia WHERE resumo LIKE '%muro%';`
Ver a consulta que resolve
SELECT id, data, hora, resumo FROM ocorrencia WHERE resumo LIKE '%muro%';

LIKE procura um pedaço de texto dentro da coluna, e o sinal de porcento (%) quer dizer 'qualquer coisa antes ou depois daqui'.

Resultado

id data hora resumo
9 1996-05-14 06:50 Parte do muro do pátio da escola amanheceu derrubada, com marca de pneu no barro
84 2001-07-30 19:05 Pichação no muro lateral da igreja, feita durante a noite
168 2002-08-22 22:15 Muro dos fundos do mercadinho danificado a marretadas
217 2003-04-02 18:25 Veículo não identificado atingiu o muro dos fundos do posto e evadiu-se

Pergunta 2

A Dona Cema viu AK no começo da placa. Traga do arquivo todo veículo que pode ser o que ela viu, só por esse começo.

Ver as dicas do jogo
  1. Traga da tabela `veiculo` o `id`, a `placa`, o `tipo`, o `modelo`, a `cor` e o `dono_id` de todo veículo cuja `placa` começa com AK.
  2. O porcento vai só no fim: 'AK%' quer dizer 'começa com AK, e depois pode vir qualquer coisa'.
  3. Escreva: `SELECT id, placa, tipo, modelo, cor, dono_id FROM veiculo WHERE placa LIKE 'AK%';`
Ver a consulta que resolve
SELECT id, placa, tipo, modelo, cor, dono_id FROM veiculo WHERE placa LIKE 'AK%';

Porcento no fim casa com 'começa assim, e depois disso pode vir qualquer coisa'.

Resultado

id placa tipo modelo cor dono_id
2 AKB-0316 automovel Fiat Uno Mille vermelha 69
5 AKE-9137 onibus Mercedes-Benz O-364 azul e branca 8
12 AKL-2287 caminhao Ford F-4000 baú branca 23
18 AKM-9753 motocicleta Yamaha DT 180 azul 146
31 AKB-3319 motocicleta Yamaha DT 180 vermelha 38
43 AKT-9414 automovel VW Santana azul 138

Pergunta 3

O fim da placa ela jura que era 7. Traga do arquivo todo veículo que pode ser o que ela viu, só por esse fim.

Ver as dicas do jogo
  1. Traga da tabela `veiculo` o `id`, a `placa`, o `tipo`, o `modelo`, a `cor` e o `dono_id` de todo veículo cuja `placa` termina com 7.
  2. Agora o porcento vem antes: '%7' quer dizer 'qualquer coisa antes, e termina com 7'.
  3. Escreva: `SELECT id, placa, tipo, modelo, cor, dono_id FROM veiculo WHERE placa LIKE '%7';`
Ver a consulta que resolve
SELECT id, placa, tipo, modelo, cor, dono_id FROM veiculo WHERE placa LIKE '%7';

Porcento no começo casa com 'qualquer coisa antes, e termina assim'.

Resultado

id placa tipo modelo cor dono_id
5 AKE-9137 onibus Mercedes-Benz O-364 azul e branca 8
7 AJE-4477 utilitario VW Kombi (escolar) branca 8
8 AIX-0527 motocicleta Yamaha RD 135 branca 80
11 AIM-1097 caminhao Chevrolet D-60 carroceria prata 57
12 AKL-2287 caminhao Ford F-4000 baú branca 23
14 AIF-4187 automovel Fiat Elba verde 52
17 AJA-7597 motocicleta Honda XLX 250 branca 125
41 AJX-5277 automovel VW Fusca bege 117
42 AIZ-7157 utilitario Ford F-1000 azul 107

Pergunta 4

Traga do arquivo tudo o que foi dito em depoimento sobre o muro do posto, a ocorrência 217.

Ver as dicas do jogo
  1. Traga da tabela `depoimento` o `id`, o `pessoa_id`, o `momento` e o `texto` de todo depoimento da ocorrência 217.
  2. Cada depoimento guarda o número da sua ocorrência na coluna `ocorrencia_id`: é uma condição de igual.
  3. Escreva: `SELECT id, pessoa_id, momento, texto FROM depoimento WHERE ocorrencia_id = 217;`
Ver a consulta que resolve
SELECT id, pessoa_id, momento, texto FROM depoimento WHERE ocorrencia_id = 217;

A comparação de igualdade serve em qualquer gaveta: `ocorrencia_id` amarra cada depoimento à ocorrência a que ele pertence.

Resultado

id pessoa_id momento texto
154 26 2003-04-02 19:10 o caminhão da cerealista passou aqui umas seis e pouco e entrou de ré pro lado do diesel, e da bomba eu só via o baú, a cabine ficou pro lado do muro. Ele sempre vem no fim do dia, porque de manhã tem fiscalização na pista.
155 24 2003-04-03 09:20 isso aqui é a segunda vez que eu perco dinheiro por causa de motorista apressado; ano passado um ônibus da Falcão saiu da pista na Curva do Bugre e eu fui lá com o guincho, era a ocorrência 152, eu anotei o número no meu caderno porque ia cobrar o guincho e nunca recebi.
156 23 2003-04-03 14:15 o caminhão da cerealista faz a rota da Estrada do Café toda quarta-feira; quem estava com ele naquela tarde eu não sei dizer, porque eu fico no depósito e não anoto saída.
157 37 2003-04-03 15:00 eu trabalho na balança da cerealista e não saio em rota. O caminhão voltou já no escuro e eu não reparei em nada de diferente nele.

Pergunta 5, a que o caso puxa no meio do caminho

O Trentini anotou no caderno dele o número da ocorrência do guincho: 152. Traga essa ocorrência do arquivo.

Ver as dicas do jogo
  1. O Trentini anotou no caderno dele o número da ocorrência do guincho: 152. Traga da tabela `ocorrencia` o `id`, a `data`, a `categoria` e o `resumo` dela.
  2. Peça pelo número, na coluna `id`. Se nada voltar, isso também é resposta.
  3. Escreva: `SELECT id, data, categoria, resumo FROM ocorrencia WHERE id = 152;`
Ver a consulta que resolve
SELECT id, data, categoria, resumo FROM ocorrencia WHERE id = 152;

Zero linha também é resposta: a consulta está certa, o número está certo, e o arquivo não tem a folha.

Resultado

id data categoria resumo

Pergunta 6

Três depoimentos do muro falam da cerealista. Traga do fichário todo mundo que trabalha na Cerealista Pontal.

Ver as dicas do jogo
  1. Traga da tabela `pessoa` o `id`, o `nome`, o `apelido`, o `nascimento`, a `ocupacao` e o `bairro_id` de todo mundo cuja `ocupacao` fala na Cerealista Pontal.
  2. O nome da firma está no meio da `ocupacao`: LIKE, com o porcento dos dois lados de 'Cerealista'.
  3. Escreva: `SELECT id, nome, apelido, nascimento, ocupacao, bairro_id FROM pessoa WHERE ocupacao LIKE '%Cerealista%';`
Ver a consulta que resolve
SELECT id, nome, apelido, nascimento, ocupacao, bairro_id FROM pessoa WHERE ocupacao LIKE '%Cerealista%';

LIKE serve numa coluna de ofício tanto quanto num resumo ou numa placa. O porcento dos dois lados acha o nome da firma onde quer que ele esteja.

Resultado

id nome apelido nascimento ocupacao bairro_id
22 Nelson Zanardi Nelsinho 1974-05-09 ajudante da Cerealista Pontal 6
23 Aldo Pontal 1950-06-02 dono da Cerealista Pontal 1
37 Adilson Queiroz Didi 1979-03-23 encarregado da balança da Cerealista Pontal 3

Quem foi

Ver o culpado e a prova

O culpado é Nelson Zanardi.

As provas que fecham o caso:

  • O Aldo Pontal escreveu no fórum da Associação que quem leva o caminhão baú da cerealista na rota da Estrada do Café é o ajudante dele, e o único ajudante da Cerealista Pontal é o Nelsinho.

O Nelsinho chegou de carona, o que já diz muito. Assumiu o muro de primeira e demorou vinte minutos para assumir a carteira. Disse que fazia o exame em dezembro, que o dinheiro do exame já estava separado desde maio, e que se perdesse o serviço não ia ter nem dezembro nem exame.

Aldo Pontal pagou o muro na hora e disse ao doutor que não sabia de nada. Seu Jaime datilografou o "não sabia de nada" com a cara de quem datilografa isso desde 1971, e pediu para você imprimir a página da Associação e grampear atrás.