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!
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!
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?