[Resolvido] Problema com Query [MYSQL]

Bom dia, galera

Estou precisando de um help!

Tenho que criar uma query que busque no banco de dados: Custos e Faturamentos de um único Contrato.

Tenho no BD 3 tabelas:

  • Notas_Fiscais
  • Contas_Pagar
  • Contrato

Preciso somar o total de Notas_Fiscais e de Contas_Pagar por Contrato.

Consigo fazer isso separado, uma query para Notas_Fiscais e outra para Contas_Pagar.

Alguém sabe como posso fazer para em um mesma Query conseguir esse resultado?

Obrigada!

Posta o que vc já fez

Nesta query tenho o resultado do Total de Contas_Pagar:

SELECT ctt.id_contrato, c.id_contas_a_pagar, d.mes_competencia, d.ano_competencia, o.descricao, cli.nome_cliente, cc.categoria, SUM(d.valor_parcela) AS valor_total_contas FROM contas_apagar AS c, depreciacao AS d, contrato AS ctt, orcamento AS o, cliente AS cli, categoria_contrato AS cc WHERE ctt.id_contrato = c.contrato_id_contrato AND o.id_orcamento = ctt.orcamento_id_orcamento AND cli.id_cliente = o.cliente_id_cliente AND cc.id_categoria_contrato = o.categoria_contrato_id_categoria_contrato AND c.id_contas_a_pagar = d.contas_apagar_id_contas_a_pagar AND d.mes_competencia = 12 AND d.ano_competencia = 2012 AND ctt.id_contrato = 2;

E nessa com o Total de Nota_Fiscal também:

SELECT ctt.id_contrato, nf.mes_referencia_nf_id_mes_referencia_nf, nf.ano, SUM(nf.valor) AS valor_total FROM nota_fiscal AS nf, contrato AS ctt WHERE ctt.id_contrato = nf.contrato_id_contrato AND ctt.id_contrato = 2 AND nf.mes_referencia_nf_id_mes_referencia_nf = 12 AND nf.ano = 2012 ORDER BY nf.id_nota_fiscal;

Vlw!!!
Preciso unir em 1 única query e com os dois resultados!

Já tentou usar JOIN?

Não, ainda não aprendi usar JOIN, uma vez tentei mas não obtive sucesso.

Você poderia me ajudar me dando um exemplo básico?

Obrigada.

Exemplo básico de JOIN


Select p.nome, m.marca from Produto p
join marca m on m.codigo = p.codigo_marca

Nessa caso ele vai trazer o nome do produto e a sua marca para todos os registros que forem iguais nas tabelas.

[quote=diogo soares]Exemplo básico de JOIN

[code]

Select p.nome, m.marca from Produto p
join marca m on m.codigo = p.codigo_marca

Nessa caso ele vai trazer o nome do produto e a sua marca para todos os registros que forem iguais nas tabelas.

[/code][/quote]

Acho que deu pra entender Diogo, vou tentar implementar alguma coisa aqui, já te mostro!

Entendi! Li algumas coisas aqui, achei muito mais prático…

Olha como ficou o primeiro:

SELECT c.id_Contas_a_Pagar, c.contrato_id_Contrato, d.mes_competencia, d.ano_competencia, o.Descricao, cli.Nome_Cliente, SUM(d.valor_parcela) AS valor_total_custos FROM contas_apagar c JOIN depreciacao d JOIN contrato ctt JOIN orcamento o JOIN cliente cli ON c.id_Contas_a_Pagar = d.contas_apagar_id_Contas_a_Pagar AND c.contrato_id_Contrato = ctt.id_Contrato AND ctt.orcamento_id_Orcamento = o.id_Orcamento AND o.cliente_id_cliente = cli.id_cliente WHERE d.mes_competencia = 12 AND d.ano_competencia = 2012 AND c.contrato_id_Contrato = 2;

Está certo? Ou eu posso melhorar?