Mais um exercício de SQL que divulgo a solução!
Antes de resolver qualquer problema de SQL do URI/BEECROWD, recomendamos seguir os seguintes passos:
- Ler todo enunciado do problema.
- Ler os tópicos do fórum em caso de dúvidas
- Preparar o esquema, conforme fornecido no problema. Obs.: muitas vezes o pessoal coloca o código de criação do esquema no fórum, então é só copiar!
Plataforma: URI (BEECROWD)
Problema: 2620
Solução:
Mais um exercício bem simples de SQL! Nesse era necessário obter o nome do cliente e o id de sua encomenda/seu pedido em um intervalo de tempo específico. Só precisaria, além de testar o intervalo de tempo, verificar também se o id do cliente era igual ao id_customers na tabela de pedidos, evitando relações desnecessárias e não solicitadas no exercício. Outra forma de resolver era usando between nas datas, mas dessa vez usei os operadores relacionais.
Lembre-se de que se a sua solução ocupa uma linha ela também pode estar correta, aqui quebrei ela em várias linhas por achar que assim fica mais legível.
Como ficou a sua solução? Igual ou diferente?
SELECT customers.name, orders.id FROM customers, orders
WHERE
orders.orders_date >= '2016-01-01' AND orders.orders_date <= '2016-06-30' AND customers.id = orders.id_customers;