Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

rodrigo badaro

WHERE IN

Recommended Posts

Bom dia Pessoal,

estou trabalhando em um sistema para listar o faturamento de determinado tempo, e nele eu preciso listar alguns ID's selecionados. a primeira query é a seguinte:

$servicos = $pdo->prepare("SELECT id FROM agendamentos WHERE usuario = '".$_SESSION['UsuarioID']."' AND dia BETWEEN '".$primeiro_dia."' AND '".$ultimo_dia."' AND concluido = '1'");
						

que vai listar os ID da tabela agendamentos onde é de determinado usuário entre as datas e se o serviço foi concluído. até ai tudo bem, o problema vem a seguir, com o código

$fservicos = $pdo->prepare("SELECT SUM(valor) FROM servicos_prestados WHERE id_agendamento = '".$servicos['id']."'");

nesse modelo acima, ele só soma apenas o resultado do ultimo ID. Como faço para somar todos os resultados encontrados na $servicos ?

Da forma abaixo funciona corretamente para o período que quero, mas como eu chego nessa query?

$fservicos = $pdo->prepare("SELECT SUM(valor) FROM servicos_prestados WHERE id_agendamento = '95' OR '96' OR '97' OR '98' OR '99' OR '102' OR '103' OR '105' OR '106' OR '108' OR '109' OR '110' OR '112' OR '115'");

Pesquisei e vi que com WHERE id_agendamento in () eu consigo, mas nao sei montar a query, alguem consegue me ajudar?

Compartilhar este post


Link para o post
Compartilhar em outros sites


$fservicos = $pdo->prepare("SELECT SUM(valor) FROM servicos_prestados WHERE id_agendamento in ('95','96','97','98','99','102','103','105','106','108','109','110','112','115')");

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim isso dá certo, mas conforme muda o periodo muda os ID's e precisava que a query fosse algo do tipo

$fservicos = $pdo->prepare("SELECT SUM(valor) FROM servicos_prestados WHERE id_agendamento in ($resultados)");

Compartilhar este post


Link para o post
Compartilhar em outros sites

Resolvido.


								
$ser[] =  "'".$servicos['id']."'";

$selecionados = join (", ", $ser);

$fservicos = $pdo->prepare("SELECT SUM(valor) FROM servicos_prestados WHERE id_agendamento in (".$selecionados.")");

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.