Fórum Como Somar Por Tipo? #28610
26/09/2006
0
N - Normal
X - Excluido
D - Desconto
só que neste meu select tá somando tudo, o que preciso seria Somar ´N´, desconsiderar ´X´ e Subtrair ´D´.
Alguém sabe como fazer?
SELECT LOJA, EMPRESA, SUM(VALOR), SUM(VALORCOMISSAO), SUM(VALORLIQUIDO)
FROM TabelaItens TI, TabelaHeaders TH
WHERE TI.codfatura in
(SELECT codFatura from TabelaHeaders THX
WHERE THX.codfechamento = 1 AND
FTHX.fth_estado = ´F´) AND
TH.codfatura = TI.codfatura AND
TI.fti_TipoLanc in (´N´,´X´,´D´)
GROUP BY TI_LOJA, TH_EMPRESA
ORDER BY TI_LOJA, TH_EMPRESA
Wgm8
Curtir tópico
+ 0Posts
26/09/2006
Rosterne
SELECT LOJA, EMPRESA, SUM(VALOR) - SUM(T.VALOR), SUM(VALORCOMISSAO) - SUM(T.VALORCOMISSAO), SUM(VALORLIQUIDO) - SUM(T.VALORLIQUIDO)
FROM TabelaItens TI,
TabelaHeaders TH,
(
SELECT LOJA, EMPRESA, VALOR, VALORCOMISSAO, VALORLIQUIDO
FROM TabelaItens TI, TabelaHeaders TH
WHERE TI.codfatura in
(SELECT codFatura from TabelaHeaders THX
WHERE THX.codfechamento = 1 AND
FTHX.fth_estado = ´F´) AND
TH.codfatura = TI.codfatura AND
TI.fti_TipoLanc = (´D´)
) T
WHERE TI.codfatura in
(SELECT codFatura from TabelaHeaders THX
WHERE THX.codfechamento = 1 AND
FTHX.fth_estado = ´F´) AND
TH.codfatura = TI.codfatura AND
TI.fti_TipoLanc = (´N´)
GROUP BY TI_LOJA, TH_EMPRESA
ORDER BY TI_LOJA, TH_EMPRESA;
Gostei + 0
26/09/2006
Wgm8
Gostei + 0
26/09/2006
Rosterne
Ex:
SELECT TH.LOJA, TH.EMPRESA, SUM(VALOR) - SUM(T.VALOR) ...
Abraço.
Gostei + 0
26/09/2006
Wgm8
SELECT FTI_CODLOJA, FTH_CODEMPRESA,
SUM(FTI_VALOR) - SUM(T.FTI_VALOR)
FROM FATURAI FTI,
FATURAH FTH,
(
SELECT FTI_CODLOJA, FTH_CODEMPRESA, FTI_VALOR
FROM FATURAI FTI, FATURAH FTH
WHERE FTI.fti_codfatura in
(SELECT fth_codFatura from FATURAH FTHX
WHERE FTHX.fth_codfechamento = 93 AND
FTHX.fth_estado = ´F´) AND
FTH.fth_codfatura = FTI.fti_codfatura AND
FTI.fti_TipoLanc in (´T´)
) T
WHERE FTI.fti_codfatura in
(SELECT fth_codFatura from FATURAH FTHX
WHERE FTHX.fth_codfechamento = 93 AND
FTHX.fth_estado = ´F´) AND
FTH.fth_codfatura = FTI.fti_codfatura AND
FTI.fti_TipoLanc in (´D´)
GROUP BY FTI_CODLOJA, [color=red:5b10262f82]FTH_CODEMPRESA [/color:5b10262f82]
ORDER BY FTI_CODLOJA, FTH_CODEMPRESA
Gostei + 0
27/09/2006
Rosterne
como falei coloque o nome da tabela ou o ´alias´ da tabela que o campo pertence na query, isso vale não somente para os campos na claúsula SELECT.
Essa query tem dois select´s com o mesmo nome, repare na sbquery que os campos FTI_CODLOJA, FTH_CODEMPRESA etc repetem.
o nome da tabela ou seu ´Alias´ é seprado por ´,´ e não ´_´.
Formato: ´NOMEDATABELA.NOMEDOCAMPO.´
Seria algo assim, mas confira se os campos estão conforme as tabelas a que eles pertencem.
Ex:
SELECT TI.LOJA, TH.EMPRESA, SUM(TI.VALOR) - SUM(T.VALOR), SUM(TI.VALORCOMISSAO) - SUM(T.VALORCOMISSAO), SUM(TI.VALORLIQUIDO) - SUM(T.VALORLIQUIDO)
FROM TabelaItens TI,
TabelaHeaders TH,
(
SELECT LOJA, EMPRESA, VALOR, VALORCOMISSAO, VALORLIQUIDO
FROM TabelaItens TI, TabelaHeaders TH
WHERE TI.codfatura in
(SELECT codFatura from TabelaHeaders THX
WHERE THX.codfechamento = 1 AND
FTHX.fth_estado = ´F´) AND
TH.codfatura = TI.codfatura AND
TI.fti_TipoLanc = (´D´)
) T
WHERE TI.codfatura in
(SELECT codFatura from TabelaHeaders THX
WHERE THX.codfechamento = 1 AND
FTHX.fth_estado = ´F´) AND
TH.codfatura = TI.codfatura AND
TI.fti_TipoLanc = (´N´)
GROUP BY TI.LOJA, TH.EMPRESA
ORDER BY TI.LOJA, TH.EMPRESA;
Abraço.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)