Danyx 0 Denunciar post Postado Outubro 17, 2011 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
Henrique Barcelos 290 Denunciar post Postado Outubro 23, 2011 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
Danyx 0 Denunciar post Postado Outubro 24, 2011 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
BCunha 0 Denunciar post Postado Outubro 24, 2011 tenta isso: select id_despesa, convenio_id_convenio from despesa group by convenio_id_convenio; Compartilhar este post Link para o post Compartilhar em outros sites