Ao calcular a diferença entre 2 datas como número de dias, usando a função MySQL Datediff(), estou enfrentando alguns problemas, o código SQL é fornecido abaixo.
select datediff((select curdate()),
(select Company.CreatedOn
from
dbname.company
inner join
dbname.user
on
user.company_id = company.company_id
))
Estou obtendo o resultado da seguinte forma,
Error Code: 1242 Subquery returns more than 1 row
Eu entendo o erro, mas não posso usar nenhum id para apontar o seguinte,
select datediff
(
(select curdate()),
(select Company.CreatedOn
from
dbname.company
inner join
dbname.user
on
user.company_id = company.company_id
where
company.company_id = 17)
);
Enquanto executo esta consulta, obtive a saída da seguinte forma,
38
Preciso selecionar os usuários depende da empresa cadastrada há mais de 365 dias.
Necessidade de exibir todas as empresas que registraram tempo superior a 365 dias, não mencionei essa condição no código,
Preciso resolver o resultado da subconsulta, a função datediff deve comparar com todo o valor da empresa CreatedOn e resulta apenas as empresas que existem há mais de 365 dias.
Qualquer ajuda seria bem vinda.
Uh, por que não apenas
A resposta de Aaron está essencialmente correta, mas eu não recomendaria DATEDIFF na cláusula WHERE porque poderia impor uma verificação de tabela. Em vez disso, sugiro isso
Você pode ir mais longe e refatorar a consulta da seguinte maneira: