[firebase-br] ajuda numa query
Leonardo - Lalur Informática
leonardo em lalur.com.br
Sex Jun 2 10:34:23 -03 2006
Bom dia pessoal... na query abaixo o que está em NEGRITO não está sendo feito...
o meu gerador_ciapc está em 440, mas ele traz somente os primeiros 440, traz 2392 registros, respeitando as outras condições, mas nao esta..
Alguem pode me ajudar?
Obrigado,
Leonardo
-----------------------------------------------------------------------------------------------------------------
SELECT GEN_ID(gerador_ciapc1,1) || '/' || SUBSTRING('2004-01-01' FROM 1 FOR 4),
b.data_entrada AS data,
b.codigo,
b.nfe,
fornecedores.razao_social,
b.descricao,
b.valor_credito_upf as valor_entrada,
CAST(0.00 AS NUMERIC(10,2)) AS valor_saida,
(SELECT SUM(b2.valor_credito_upf)
FROM bens b2
WHERE b2.data_entrada <= b.data_entrada
AND b2.data_termino > b.data_entrada
AND (b2.data_saida IS NULL OR b2.data_saida > b.data_entrada)
AND b2.contribuintes_codigo = 19
AND b2.data_entrada > '2001-01-01 '
AND b2.codigo IN
(SELECT FIRST(GEN_ID(gerador_ciapc1,0) - 1) codigo
FROM bens b3
WHERE b3.data_entrada <= b.data_entrada
AND b3.data_termino > b.data_entrada
AND b3.data_entrada > '2001-01-01'
AND (b3.data_saida IS NULL OR b3.data_saida > b.data_entrada)
AND b3.contribuintes_codigo = 19 )) AS saldo
FROM bens b
LEFT OUTER JOIN fornecedores ON bens.fornecedor_codigo = fornecedores.codigo
WHERE b.data_entrada BETWEEN '2004-01-01' AND '2004-12-31'
AND b.contribuintes_codigo = 19
UNION
SELECT GEN_ID(gerador_ciapc2,1) || '/' || SUBSTRING('2004-01-01' FROM 1 FOR 4),
b.data_saida AS data,
b.codigo,
b.nfe,
fornecedores.razao_social,
b.descricao,
CAST(0.00 AS NUMERIC(10,2)) AS valor_entrada,
b.valor_credito_upf AS valor_saida,
(SELECT SUM(valor_credito_upf)
FROM bens b2
WHERE b2.data_entrada <= b.data_saida
AND b2.data_termino > b.data_saida
AND (b2.data_saida IS NULL OR b2.data_saida > b.data_saida)
AND b2.contribuintes_codigo = 19
AND b2.data_entrada > '2001-01-01 '
AND b2.codigo IN
(SELECT FIRST (GEN_ID(gerador_ciapc2,0) - 1) codigo
FROM bens b3
WHERE b3.data_entrada <= b.data_saida
AND b3.data_termino > b.data_saida
AND (b3.data_saida IS NULL OR b3.data_saida > b.data_saida)
AND b3.data_entrada > '2001-01-01'
AND b3.contribuintes_codigo = 19 ) ) AS saldo
FROM bens b
LEFT OUTER JOIN fornecedores ON bens.fornecedor_codigo = fornecedores.codigo
WHERE b.data_saida BETWEEN '2004-01-01' AND '2004-12-31'
AND b.contribuintes_codigo = 19
ORDER BY 2,3;
Mais detalhes sobre a lista de discussão lista