SUM dentro do SQL de busca
Ola, tive uma ajuda com uma formula SUM q me solucionou o problema, mas tenho q fazer uma sum dentro de um sql de busca, vou informar as tabelas e o resultado.
Preciso informar:
Assoc, fazenda, ano contrato, num contrato, algodoeira
Resultado esperado:
NTipo_Lote SUM
31.4 657
41.4 680
**
tab-contrato
asso_contrato
faz_contrato
ano_contrato
codano_contrato
algo_contrato
** o sql do sum ja tenho
SELECT NTipo_Lote,SUM(NAmostra_lote)
FROM Lote
where Data_lote between :DataIni and :DataFim
GROUP BY NTipo_Lote
Alessandro Coelho
Curtidas 0
Respostas
Alessandro Coelho
24/09/2010
Ola, tive uma ajuda com uma formula SUM q me solucionou o problema, mas tenho q fazer uma sum dentro de um sql de busca, vou informar as tabelas e o resultado.
Preciso informar:
Assoc, fazenda, ano contrato, num contrato, algodoeira
Resultado esperado:
NTipo_Lote SUM
31.4 657
41.4 680
**
tab-contrato
asso_contrato
faz_contrato
ano_contrato
codano_contrato
algo_contrato
** o sql do sum ja tenho
SELECT NTipo_Lote,SUM(NAmostra_lote)
FROM Lote
where Data_lote between :DataIni and :DataFim
GROUP BY NTipo_Lote
tinha pensado em algo assim, mas nao sei a maneira correta de fazer
SELECT L.NTipo_Lote, SUM(L.NAmostra_lote)
FROM Lote L
where
(SELECT C.Asso_Cont, C.Faz_Cont,C.Ano_Cont, C.CodAno_Cont ,C.Algo_Cont
FROM contrato C
WHERE
C.Asso_Cont = :Fornec AND
C.Faz_Cont = :Fazenda AND
C.Ano_Cont = :Ano AND
C.CodAno_Cont = :Contrato AND
C.Algo_Cont = :Algodo)
GROUP BY L.NTipo_Lote
GOSTEI 0
Emerson Nascimento
24/09/2010
teste com esta instrução:
SELECT
L.NTipo_Lote, SUM(L.NAmostra_lote)
FROM
Lote L
LEFT JOIN
Contrato C on C.CodAnoContrato = L.CodAnoContrato
WHERE
C.Asso_Cont = :Fornec
AND C.Faz_Cont = :Fazenda
AND C.Ano_Cont = :Ano
AND C.CodAno_Cont = :Contrato
AND C.Algo_Cont = :Algodo
GROUP BY
L.NTipo_Lote
note que é preciso fazer o relacionamento entre as tabelas LOTE e CONTRATO. como você não publicou as estruturas das tabelas, assumi que o campo de relacionamento seria CodAnoContrato.
SELECT
L.NTipo_Lote, SUM(L.NAmostra_lote)
FROM
Lote L
LEFT JOIN
Contrato C on C.CodAnoContrato = L.CodAnoContrato
WHERE
C.Asso_Cont = :Fornec
AND C.Faz_Cont = :Fazenda
AND C.Ano_Cont = :Ano
AND C.CodAno_Cont = :Contrato
AND C.Algo_Cont = :Algodo
GROUP BY
L.NTipo_Lote
note que é preciso fazer o relacionamento entre as tabelas LOTE e CONTRATO. como você não publicou as estruturas das tabelas, assumi que o campo de relacionamento seria CodAnoContrato.
GOSTEI 0
Alessandro Coelho
24/09/2010
obrigado, Emerson deu certo.
GOSTEI 0