Ir para conteúdo

POWERED BY:

Arquivado

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

Danyx

Select vem dados de todos id

Recommended Posts

Boa tarde pessoas.

 

Gostaria de fazer esse respectivo select:

 

Tabela Convenio = id_convenio

 

Tabela despesa = id_despesa

convenio_id_convenio (chave estrangeira da tabela convenio)

 

Gostaria de vir só as despesas do respectivo convenio, Fiz assim só que retorna todos id's:

 

select c.cod_despesa

from despesa d , convenio c

where d.convenio_id_convenio = c.id_convenio and d.convenio_id_convenio = '{id_convenio}'

group by d.convenio_id_convenio

 

 

O estranho foi o que eu fiz outro select abaixo para processo parecido com essa entidade Despesa e deu certo:

 

SELECT sum(d.valor)

FROM processo d, convenio c

WHERE d.convenio_id_convenio=c.id_convenio and

d.convenio_id_convenio = {id_convenio}

group by d.convenio_id_convenio;

 

No entanto, com a entidade despesa não está filtrando os dados com seus respectivos id's de convenio.

 

Desde já agradeço as dicas!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

select  c.cod_despesa
from  despesa d , convenio c
where d.convenio_id_convenio = c.id_convenio and d.convenio_id_convenio = '{id_convenio}'
group by d.convenio_id_convenio

 

Você está esperando que ele traga todas as despesas agrupadas pelo ID do convênio?

Assim:

id_convenio = 4
   	cod_despesa = 1
   	cod_despesa = 2
   	cod_despesa = 3
   	cod_despesa = 7
id_convenio = 6
   	cod_despesa = 5
   	cod_despesa = 6

 

Não vai funcionar, pois o MySQL é capaz de trabalhar apenas com dados em "1 dimensão".

Se você quer fazer isso para todos os convênios existentes, vai ter que retorná-los para a sua LP, fazer um laço iterador (for, foreach) e então buscar os dados correspondentes

select  c.cod_despesa
from  despesa d , convenio c
where d.convenio_id_convenio = c.id_convenio and d.convenio_id_convenio = '{id_convenio}'

Sem o GROUP BY...

Compartilhar este post


Link para o post
Compartilhar em outros sites

select  c.cod_despesa
from  despesa d , convenio c
where d.convenio_id_convenio = c.id_convenio and d.convenio_id_convenio = '{id_convenio}'
group by d.convenio_id_convenio

 

Você está esperando que ele traga todas as despesas agrupadas pelo ID do convênio?

Assim:

id_convenio = 4
   	cod_despesa = 1
   	cod_despesa = 2
   	cod_despesa = 3
   	cod_despesa = 7
id_convenio = 6
   	cod_despesa = 5
   	cod_despesa = 6

 

Não vai funcionar, pois o MySQL é capaz de trabalhar apenas com dados em "1 dimensão".

Se você quer fazer isso para todos os convênios existentes, vai ter que retorná-los para a sua LP, fazer um laço iterador (for, foreach) e então buscar os dados correspondentes

select  c.cod_despesa
from  despesa d , convenio c
where d.convenio_id_convenio = c.id_convenio and d.convenio_id_convenio = '{id_convenio}'

Sem o GROUP BY...

 

Como ficaria essa query?

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.