Procurar
Últimos assuntos
Adiantamento ao cliente com ou sem vinculo
Página 1 de 1
Adiantamento ao cliente com ou sem vinculo
Gostaria de Saber como identificar dentro da base quando um lançamento esta ou não vinculado NF.
Tenho um relatorio que teria que retornar os adiantamentos não vinculados a Nfs mas este relatorio tb esta retornando os vinculados .
Segue abaixo as sentenças sql deste relatorio
Se alguem puder me ajudar ficaria muito grato
---------------------------------------------------------
Retorna o no nome dos clientes não vinculados:
SELECT DISTINCT FCFO.CODCFO FORNECEDOR$, FCFO.NOME
FROM FCFO, FLAN AS FLAN_D RIGHT JOIN
( FLAN LEFT JOIN FRELLAN ON
( FLAN.IDLAN = FRELLAN.IDLANREL ) AND ( FLAN.CODCOLIGADA = FRELLAN.CODCOLIGADA ) ) ON
( FLAN_D.IDLAN = FRELLAN.IDLAN ) AND ( FLAN_D.CODCOLIGADA = FRELLAN.CODCOLIGADA )
WHERE
FLAN.CODCOLCFO = FCFO.CODCOLIGADA
AND FLAN.CODCFO = FCFO.CODCFO
AND FLAN.CODCOLIGADA =:PARAMETRO#1_N
AND FLAN.CODTDO =:PARAMETRO#2_S
AND FLAN.STATUSLAN = 1
AND FLAN.IDFAT IS NULL
AND FLAN.DATABAIXA <=:PARAMETRO#3_D
AND(( FLAN_D.STATUSLAN = 0 OR FLAN_D.STATUSLAN IS NULL ) OR
( FLAN_D.STATUSLAN = 1 AND FLAN_D.DATABAIXA >:PARAMETRO#3_D))
ORDER BY FCFO.NOME
-------------------------------------------------------------------------------------------------------------------------
Retorna os valores
/* ADIANTAMENTOS SEM VINCULO */
SELECT L2.DATAEMISSAO, L2.DATABAIXA, L2.NUMERODOCUMENTO, L2.IDLAN, L2.NUMEROCHEQUE,
L2.VALORORIGINAL
FROM FLAN L2 (NOLOCK)
WHERE L2.CODCOLIGADA = 1
AND L2.IDLAN IN (SELECT L1.IDLAN
FROM FLAN L1 (NOLOCK)
WHERE L1.CODCOLIGADA =:PARAMETRO#1_N
AND L1.CODTDO =:PARAMETRO#2_S
AND L1.STATUSLAN = 1
AND (L1.IDFAT IS NULL OR L1.NFOUDUP = 2)
AND L1.DATABAIXA <=:PARAMETRO#3_D
AND L1.CODCFO =:ESPELHO#1
GROUP BY L1.IDLAN HAVING (SELECT COUNT(*) FROM FRELLAN R (NOLOCK) WHERE R.CODCOLIGADA =:PARAMETRO#1_N AND R.IDLANREL = L1.IDLAN) = 0)
UNION
/* ADIANTAMENTOS COM VINCULOS SEM BAIXA */
SELECT L1.DATAEMISSAO, L1.DATABAIXA, L1.NUMERODOCUMENTO, L1.IDLAN, L1.NUMEROCHEQUE,
L1.VALORORIGINAL
FROM FLAN L1 (NOLOCK),
(SELECT L2.CODCOLIGADA AS CODCOLIGADA, R1.IDLANREL AS IDLAN
FROM FRELLAN R1 (NOLOCK), FLAN L2 (NOLOCK)
WHERE R1.CODCOLIGADA = L2.CODCOLIGADA
AND R1.IDLAN = L2.IDLAN
AND L2.CODCOLIGADA =:PARAMETRO#1_N
AND L2.STATUSLAN = 0
AND L2.IDFAT IS NULL
AND L2.CODCFO =:ESPELHO#1
AND R1.TIPOREL = 2) K1
WHERE L1.CODCOLIGADA = K1.CODCOLIGADA
AND L1.IDLAN = K1.IDLAN
AND L1.CODCOLIGADA =:PARAMETRO#1_N
AND L1.CODTDO =:PARAMETRO#2_S
AND L1.STATUSLAN = 1
AND L1.IDFAT IS NULL
AND L1.DATABAIXA <=:PARAMETRO#3_D
AND L1.CODCFO =:ESPELHO#1
UNION
/* ADIANTAMENTO COM ORIGEM BAIXA PARCIAL */
SELECT L1.DATAEMISSAO, L1.DATABAIXA, L1.NUMERODOCUMENTO, L1.IDLAN, L1.NUMEROCHEQUE,
L1.VALORORIGINAL
FROM FLAN L1 (NOLOCK)
WHERE L1.CODCOLIGADA =:PARAMETRO#1_N
AND L1.IDLAN IN (SELECT R1.IDLANREL
FROM FRELLAN R1 (NOLOCK), FLAN L2 (NOLOCK)
WHERE R1.CODCOLIGADA = L2.CODCOLIGADA
AND R1.IDLANREL = L2.IDLAN
AND L2.CODCOLIGADA =:PARAMETRO#1_N
AND L2.CODTDO =:PARAMETRO#2_S
AND L2.STATUSLAN = 1
AND L2.IDFAT IS NULL
AND L2.DATABAIXA <=:PARAMETRO#3_D
AND L2.CODCFO =:ESPELHO#1
AND R1.TIPOREL = 11
GROUP BY R1.IDLANREL HAVING (SELECT COUNT(*) FROM FRELLAN (NOLOCK) WHERE CODCOLIGADA =:PARAMETRO#1_N AND IDLANREL = R1.IDLANREL) = 1)
UNION
SELECT L3.DATAEMISSAO, L3.DATABAIXA, L3.NUMERODOCUMENTO, L3.IDLAN, L3.NUMEROCHEQUE,
L3.VALORORIGINAL
FROM FRELLAN R1 (NOLOCK), FLAN L2 (NOLOCK), FLAN L3 (NOLOCK)
WHERE R1.CODCOLIGADA = L2.CODCOLIGADA
AND R1.IDLAN = L2.IDLAN
AND R1.CODCOLIGADA = L3.CODCOLIGADA
AND R1.IDLANREL = L3.IDLAN
AND L2.CODCOLIGADA =:PARAMETRO#1_N
AND L2.STATUSLAN = 1
AND L2.IDFAT IS NULL
AND L3.DATABAIXA <=:PARAMETRO#3_D
AND L2.DATABAIXA >=:PARAMETRO#3_D
AND L2.CODCFO =:ESPELHO#1
AND R1.TIPOREL = 2
AND L3.CODTDO = '1.09.001'
_____________________________________________________________________________________________
Tenho um relatorio que teria que retornar os adiantamentos não vinculados a Nfs mas este relatorio tb esta retornando os vinculados .
Segue abaixo as sentenças sql deste relatorio
Se alguem puder me ajudar ficaria muito grato
---------------------------------------------------------
Retorna o no nome dos clientes não vinculados:
SELECT DISTINCT FCFO.CODCFO FORNECEDOR$, FCFO.NOME
FROM FCFO, FLAN AS FLAN_D RIGHT JOIN
( FLAN LEFT JOIN FRELLAN ON
( FLAN.IDLAN = FRELLAN.IDLANREL ) AND ( FLAN.CODCOLIGADA = FRELLAN.CODCOLIGADA ) ) ON
( FLAN_D.IDLAN = FRELLAN.IDLAN ) AND ( FLAN_D.CODCOLIGADA = FRELLAN.CODCOLIGADA )
WHERE
FLAN.CODCOLCFO = FCFO.CODCOLIGADA
AND FLAN.CODCFO = FCFO.CODCFO
AND FLAN.CODCOLIGADA =:PARAMETRO#1_N
AND FLAN.CODTDO =:PARAMETRO#2_S
AND FLAN.STATUSLAN = 1
AND FLAN.IDFAT IS NULL
AND FLAN.DATABAIXA <=:PARAMETRO#3_D
AND(( FLAN_D.STATUSLAN = 0 OR FLAN_D.STATUSLAN IS NULL ) OR
( FLAN_D.STATUSLAN = 1 AND FLAN_D.DATABAIXA >:PARAMETRO#3_D))
ORDER BY FCFO.NOME
-------------------------------------------------------------------------------------------------------------------------
Retorna os valores
/* ADIANTAMENTOS SEM VINCULO */
SELECT L2.DATAEMISSAO, L2.DATABAIXA, L2.NUMERODOCUMENTO, L2.IDLAN, L2.NUMEROCHEQUE,
L2.VALORORIGINAL
FROM FLAN L2 (NOLOCK)
WHERE L2.CODCOLIGADA = 1
AND L2.IDLAN IN (SELECT L1.IDLAN
FROM FLAN L1 (NOLOCK)
WHERE L1.CODCOLIGADA =:PARAMETRO#1_N
AND L1.CODTDO =:PARAMETRO#2_S
AND L1.STATUSLAN = 1
AND (L1.IDFAT IS NULL OR L1.NFOUDUP = 2)
AND L1.DATABAIXA <=:PARAMETRO#3_D
AND L1.CODCFO =:ESPELHO#1
GROUP BY L1.IDLAN HAVING (SELECT COUNT(*) FROM FRELLAN R (NOLOCK) WHERE R.CODCOLIGADA =:PARAMETRO#1_N AND R.IDLANREL = L1.IDLAN) = 0)
UNION
/* ADIANTAMENTOS COM VINCULOS SEM BAIXA */
SELECT L1.DATAEMISSAO, L1.DATABAIXA, L1.NUMERODOCUMENTO, L1.IDLAN, L1.NUMEROCHEQUE,
L1.VALORORIGINAL
FROM FLAN L1 (NOLOCK),
(SELECT L2.CODCOLIGADA AS CODCOLIGADA, R1.IDLANREL AS IDLAN
FROM FRELLAN R1 (NOLOCK), FLAN L2 (NOLOCK)
WHERE R1.CODCOLIGADA = L2.CODCOLIGADA
AND R1.IDLAN = L2.IDLAN
AND L2.CODCOLIGADA =:PARAMETRO#1_N
AND L2.STATUSLAN = 0
AND L2.IDFAT IS NULL
AND L2.CODCFO =:ESPELHO#1
AND R1.TIPOREL = 2) K1
WHERE L1.CODCOLIGADA = K1.CODCOLIGADA
AND L1.IDLAN = K1.IDLAN
AND L1.CODCOLIGADA =:PARAMETRO#1_N
AND L1.CODTDO =:PARAMETRO#2_S
AND L1.STATUSLAN = 1
AND L1.IDFAT IS NULL
AND L1.DATABAIXA <=:PARAMETRO#3_D
AND L1.CODCFO =:ESPELHO#1
UNION
/* ADIANTAMENTO COM ORIGEM BAIXA PARCIAL */
SELECT L1.DATAEMISSAO, L1.DATABAIXA, L1.NUMERODOCUMENTO, L1.IDLAN, L1.NUMEROCHEQUE,
L1.VALORORIGINAL
FROM FLAN L1 (NOLOCK)
WHERE L1.CODCOLIGADA =:PARAMETRO#1_N
AND L1.IDLAN IN (SELECT R1.IDLANREL
FROM FRELLAN R1 (NOLOCK), FLAN L2 (NOLOCK)
WHERE R1.CODCOLIGADA = L2.CODCOLIGADA
AND R1.IDLANREL = L2.IDLAN
AND L2.CODCOLIGADA =:PARAMETRO#1_N
AND L2.CODTDO =:PARAMETRO#2_S
AND L2.STATUSLAN = 1
AND L2.IDFAT IS NULL
AND L2.DATABAIXA <=:PARAMETRO#3_D
AND L2.CODCFO =:ESPELHO#1
AND R1.TIPOREL = 11
GROUP BY R1.IDLANREL HAVING (SELECT COUNT(*) FROM FRELLAN (NOLOCK) WHERE CODCOLIGADA =:PARAMETRO#1_N AND IDLANREL = R1.IDLANREL) = 1)
UNION
SELECT L3.DATAEMISSAO, L3.DATABAIXA, L3.NUMERODOCUMENTO, L3.IDLAN, L3.NUMEROCHEQUE,
L3.VALORORIGINAL
FROM FRELLAN R1 (NOLOCK), FLAN L2 (NOLOCK), FLAN L3 (NOLOCK)
WHERE R1.CODCOLIGADA = L2.CODCOLIGADA
AND R1.IDLAN = L2.IDLAN
AND R1.CODCOLIGADA = L3.CODCOLIGADA
AND R1.IDLANREL = L3.IDLAN
AND L2.CODCOLIGADA =:PARAMETRO#1_N
AND L2.STATUSLAN = 1
AND L2.IDFAT IS NULL
AND L3.DATABAIXA <=:PARAMETRO#3_D
AND L2.DATABAIXA >=:PARAMETRO#3_D
AND L2.CODCFO =:ESPELHO#1
AND R1.TIPOREL = 2
AND L3.CODTDO = '1.09.001'
_____________________________________________________________________________________________
Convidad- Convidado
Re: Adiantamento ao cliente com ou sem vinculo
Seja bem vindo Cristiano. Cristiano, suas sentenças utilizam a tabela FRELLAN e a relaciona com a FLAN. Toda vez que houver este relacionamento, certamente você terá vínculos. Para que retorne apenas as NF que não possuem vínculos (adiantamentos), você não poderá igualar FLAN com FRELLAN.
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos
Ter 20 Jun 2017 - 12:48 por paulo.ferreira_rj
» Instalar base DEMO
Sex 2 Jun 2017 - 6:29 por akaytatsu
» Relatorio Rm reports / Holerite salario
Ter 18 Out 2016 - 8:09 por Gárgio
» DEFAULT NO CADASTRO DE FUNCIONARIOS RM LABORE
Sex 7 Out 2016 - 21:51 por mpsbrasilia
» Duvida RM Labore - Calculo Folha de Pagamento
Seg 12 Set 2016 - 15:51 por RIVALDO PAES
» Exportar Imagem do banco de dados SQL SERVER
Qui 28 Jul 2016 - 11:42 por edivan
» Consulta SQL
Qui 10 Set 2015 - 11:32 por evertonerp
» Existe Algum Demo do RM Labore???
Sex 17 Abr 2015 - 11:53 por fmsolucoes
» RM BIBLIOS
Seg 16 Fev 2015 - 7:50 por fmsolucoes