dificuldae para fazer um filtro direto na query builder
[Finalizado Pelo Aluno]
Preciso fazer um filtro direto no código... Pretendo pegar o campo tempo e somá-lo mas dentro do mes corrente... cheguei perto... mas não deu certo.
Meu código abaixo:
o filtro pelo ID(100) e a soma funcionam certinho. mas quando vou colcoar o query:
->where('data','=','01') onde a 'data' é o campo data realmente no formato Y-m-d, onde preciso que ele fique no formato apenas do mês 'm', e o '01' é a data atual date('m'), no debug a data atual vem certinha, mas estou com dificuldade de tratar a data ja cadastrada no campo data do banco, que está em Y-m-d e não apenas no formato m.
O Resultado da query é o total do campo tempo por usuário e mes.
o que eu tentei fazer foi o seguinte:
criei uma variável
$mes_atual = date('m');
debuguei e veio exatamente o que quero: 01
Agora a dificuldade está sendo transformar o campo data apenas no mes...
->where(date('m','data'),'=',$mes_atual);
essa formatação do php não está funcionando dentro da query e eu não sei como fazer esse tratamento.
consegui fazer a primeira conversão... eita forum mágico... é escrever aqui e o conhecimento aparece... método HOMER na veia...
mas ainda não consegui o resultado final
Olá, Ubiratan!
Como vai?
Que bom que conseguiu, meus parabéns!
Se ainda tiver dúvidas, poste aqui que te ajudo a resolver.
Boa noite Professor, tudo bem?
Sim ainda continuo com a dificuldade, de fazer o filtro.
Não estou conseguindo fazer o filtro responder corretamente.
o que eu preciso fazer é que retorne todos os valores do mês 01 por exemplo por profissional.
nesse linha:
Eu pego a data certinho de como quero que apareça (2024-01)
Agora eu preciso colocar ela na condição que só apareça na lista enquanto está dentro desseperiodo, ou seja, se passar para fevereiro, não conta mais.
Esse trecho acima só funciona com um DB::raw os dois não funcionam juntos.
Estou nesse impasse filtrar a data e trazer o total dentro do id do profissional.
abaixo a migrate:
Considere na migrate que ja acertei o tipo do campo tempo. que agora é inteiro. (integer)
Gratidão. consegui resolver hoje com essa linha:
SELECT * FROM projeto_relig.atendimentos WHERE MONTH(data) = $mesatual;
Bora para outro desafio. rsrsrs
Olá, Ubiratan!
É possível filtrar por mês, de forma mais fácil, exemplo:
$mes = 1; // Janeiro
$ano = 2024;
$dia = 16;
$resultados = SeuModel::whereYear('sua_coluna_data', $ano)
->whereMonth('sua_coluna_data', $mes)
->whereDay('sua_coluna_data', $dia)
->get();
Gratidão. bora pra frente. woohoo...!
Estou com outra dificuldade, e nem sei se da para fazer isso...
Não encontrei nenhum exemplo proximo:
esse código volta certinho o que queria, mas eu preciso acrescentar
Mas sempre retorna o erro da linha abaixo, Call to a member function get() on float, independente de onde insiro a query.
O Resultado da query deveria ser assim:
{
"id_profissional": "1"
"qtd_atendimentos": 5 - o count resolveu porque cada atendimento é igual a 1
"profissional_name": "Dr. Madalyn Bailey"
"tempo": "8" -> Aqui é o inteiro ja registrado na coluna tempo do banco. aqui não consigo utilizar o count porque o tempo varia mas é sempre inteiro.
}
Em Resumo, preciso apenas somar essa coluna agrupada e não estou conseguindo de forma alguma.
Bom dia Professor.
Caso resolvido com o código abaixo:
Eu precisava fazer um select antes do Join.
Como ja tinha dito... o segredo parece ser em te chamar... Professor TELEPATA!!! rsrsrs...
Gratidão.
Precisa estar logado para conseguir responder a este ticket!
Clique Aqui Para Entrar!