Usuário com melhor resposta
Agrupar informaçoes

Pergunta
-
Prezados bom dia, estou precisando da ajuda de vcs em relação a SQl abaixo,
Preciso trazer as informaçoes das colunas PAgar e Receber uma do lado da outra,
SQL
SELECT
'OFICIAL' SISTEMA,
FLAN.DATAVENCIMENTO,
SUM(FLAN.VALORORIGINAL - FLAN.VALORDESCONTO)*-1 PAGAR,
'0' AS 'RECEBER'
FROM
FLAN
WHERE
FLAN.DATAVENCIMENTO >='01-01-2010' AND
FLAN.DATAVENCIMENTO <='12-31-2050' AND
FLAN.STATUSLAN = '0' AND
FLAN.PAGREC = '2' AND
FLAN.NFOUDUP IN (0, 2)
GROUP BY
FLAN.DATAVENCIMENTO
UNION ALL
SELECT
'OFICIAL' SISTEMA,
FLAN.DATAVENCIMENTO,
'0' AS 'PAGAR',
SUM(FLAN.VALORORIGINAL - FLAN.VALORDESCONTO) RECEBER
FROM
FLAN
WHERE
FLAN.DATAVENCIMENTO >='01-01-2010' AND
FLAN.DATAVENCIMENTO <='12-31-2050' AND
FLAN.STATUSLAN = '0' AND
FLAN.PAGREC = '1' AND
FLAN.NFOUDUP IN (0, 2)
GROUP BY
FLAN.DATAVENCIMENTOResultado
base DT VENCMENTO PAGAR RECEBER
OFICIAL 2010-12-31 00:00:00.000 -180.0000 0.0000
OFICIAL 2011-10-16 00:00:00.000 -639.0200 0.0000
OFICIAL 2011-10-18 00:00:00.000 -182.1100 0.0000
OFICIAL 2011-10-21 00:00:00.000 -7004.5600 0.0000
OFICIAL 2011-10-22 00:00:00.000 -3904.2600 0.0000OFICIAL 2011-10-19 00:00:00.000 0.0000 308713.1200
OFICIAL 2011-10-21 00:00:00.000 0.0000 588385.2800prezados vejam as duas ultimas linhas
tenho lancamento a receber e nao a pagar,
vejam o resultado esperado
base DT VENCMENTO PAGAR RECEBER
OFICIAL 2010-12-31 00:00:00.000 -180.0000 0.0000
OFICIAL 2011-10-16 00:00:00.000 -639.0200 0.0000
OFICIAL 2011-10-18 00:00:00.000 -182.1100 0.0000OFICIAL 2011-10-19 00:00:00.000 0.0000 308713.1200
OFICIAL 2011-10-21 00:00:00.000 -7004.5600 588385.2800
OFICIAL 2011-10-22 00:00:00.000 -3904.2600 0.0000dia 19 entrar na ordem com o lancamento somente a receber pois nesse dia nao tenho a pagar.
e o valor a receber do dia 21 entrar no a receber do dia 21.
pessoal caso nao tenho ficado bem explicado favor me avisa, agredeço a ajuda de todos..
Respostas
-
Testa com assim:
select SISTEMA, DATAVENCIMENTO, SUM(PAGAR) as PAGAR, SUM(RECEBER) as RECEBER from ( SELECT 'OFICIAL' SISTEMA, FLAN.DATAVENCIMENTO, SUM(FLAN.VALORORIGINAL - FLAN.VALORDESCONTO)*-1 PAGAR, '0' AS 'RECEBER' FROM FLAN WHERE FLAN.DATAVENCIMENTO >='01-01-2010' AND FLAN.DATAVENCIMENTO <='12-31-2050' AND FLAN.STATUSLAN = '0' AND FLAN.PAGREC = '2' AND FLAN.NFOUDUP IN (0, 2) GROUP BY FLAN.DATAVENCIMENTO UNION ALL SELECT 'OFICIAL' SISTEMA, FLAN.DATAVENCIMENTO, '0' AS 'PAGAR', SUM(FLAN.VALORORIGINAL - FLAN.VALORDESCONTO) RECEBER FROM FLAN WHERE FLAN.DATAVENCIMENTO >='01-01-2010' AND FLAN.DATAVENCIMENTO <='12-31-2050' AND FLAN.STATUSLAN = '0' AND FLAN.PAGREC = '1' AND FLAN.NFOUDUP IN (0, 2) GROUP BY FLAN.DATAVENCIMENTO )x GROUP by SISTEMA, DATAVENCIMENTO order by SISTEMA, DATAVENCIMENTO
Att.
Marcelo Fernandes
MCP, MCDBA, MCSA, MCTS.
Se útil, classifique!!!
Me siga no twitter: @marcelodba- Marcado como Resposta Richard Juhasz sexta-feira, 21 de outubro de 2011 18:51
Todas as Respostas
-
Testa com assim:
select SISTEMA, DATAVENCIMENTO, SUM(PAGAR) as PAGAR, SUM(RECEBER) as RECEBER from ( SELECT 'OFICIAL' SISTEMA, FLAN.DATAVENCIMENTO, SUM(FLAN.VALORORIGINAL - FLAN.VALORDESCONTO)*-1 PAGAR, '0' AS 'RECEBER' FROM FLAN WHERE FLAN.DATAVENCIMENTO >='01-01-2010' AND FLAN.DATAVENCIMENTO <='12-31-2050' AND FLAN.STATUSLAN = '0' AND FLAN.PAGREC = '2' AND FLAN.NFOUDUP IN (0, 2) GROUP BY FLAN.DATAVENCIMENTO UNION ALL SELECT 'OFICIAL' SISTEMA, FLAN.DATAVENCIMENTO, '0' AS 'PAGAR', SUM(FLAN.VALORORIGINAL - FLAN.VALORDESCONTO) RECEBER FROM FLAN WHERE FLAN.DATAVENCIMENTO >='01-01-2010' AND FLAN.DATAVENCIMENTO <='12-31-2050' AND FLAN.STATUSLAN = '0' AND FLAN.PAGREC = '1' AND FLAN.NFOUDUP IN (0, 2) GROUP BY FLAN.DATAVENCIMENTO )x GROUP by SISTEMA, DATAVENCIMENTO order by SISTEMA, DATAVENCIMENTO
Att.
Marcelo Fernandes
MCP, MCDBA, MCSA, MCTS.
Se útil, classifique!!!
Me siga no twitter: @marcelodba- Marcado como Resposta Richard Juhasz sexta-feira, 21 de outubro de 2011 18:51
-
-