× Linguagem de Programação ADVPL

Perguntas Ajuda com Query do SQL

Mais
9 anos 11 meses atrás #26340 por rcaps
Ajuda com Query do SQL foi criado por rcaps
Boa tarde galera !!!

Estou precisando de uma ajudinha com a query de lançamentos contábeis abaixo :

SELECT CT2_DEBITO,CT2_CCD,SUM( CASE WHEN CT2_DEBITO = '4050101001' THEN CT2_VALOR
WHEN CT2_CREDIT = '4050101001' THEN CT2_VALOR*-1 ELSE 0 END) AS VALOR, CT2_CCC
FROM CT2010
WHERE CT2_DATA BETWEEN '20141101' AND '20141130' AND (CT2_DEBITO = '4050101001' OR CT2_CREDIT = '4050101001' )
GROUP BY CT2_DEBITO,CT2_CREDIT,CT2_CCC,CT2_CCD
ORDER BY CT2_CREDIT,CT2_CCD,CT2_CCC

Cujo resultado será :

CT2_DEBITO CT2_CCD VALOR CT2_CCC
4050101001 1401001 25716,6
4050101001 1401002 5597,04
4050101001 1401003 42209,71
4050101001 1401004 7152,34
4050101001 1403001 10552,44
4050101001 1403002 25883,6
4050101001 1403010 32261,56
4050101001 1403011 42074,84
4050101001 1501001 38241,58
4050101001 1501002 8852,92
2011501001 -232,22 1401001
2011501001 -3,9 1401002
2011501001 -554,56 1401003
2011501001 -36,8 1401004
2011501001 -4 1403001
2011501001 -137,42 1403002
2011501001 -10,3 1403010
2011501001 -177,5 1403011
2011501001 -123,08 1501001
2011501001 -16,7 1501002

Mas gostaria que os valore positivos e negativos ficassem na mesma linha, conforme abaixo :

CT2_DEBITO CT2_CCD VALOR CT2_CCC Valor
4050101001 1401001 25716,6 1401001 -232,22
4050101001 1401002 5597,04 1401002 -3,9
4050101001 1401003 42209,71 1401003 -554,56
4050101001 1401004 7152,34 1401004 -36,8
4050101001 1403001 10552,44 1403001 -4
4050101001 1403002 25883,6 1403002 -137,42
4050101001 1403010 32261,56 1403010 -10,3
4050101001 1403011 42074,84 1403011 -177,5
4050101001 1501001 38241,58 1501001 -123,08
4050101001 1501002 8852,92 1501002 -16,7

Mas não consigo fazer o somatório das contas de debito e credito na mesma linha respeitando a mesma conta contabil e o mesmo centro de custo.

Agradeço desde já a ajuda !

Abs.

Raul

Por favor Acessar ou Registrar para participar da conversa.

Mais
9 anos 11 meses atrás #26341 por admin
Respondido por admin no tópico Ajuda com Query do SQL
SELECT CT2_CREDIT,
CT2_DEBITO,
CT2_CCC,
CT2_CCD,
SUM( CASE WHEN CT2_CREDIT = '4050101001' THEN CT2_VALOR*-1 ELSE 0 END) AS TOTAL_CREDITO,
SUM( CASE WHEN CT2_DEBITO = '4050101001' THEN CT2_VALOR ELSE 0 END) AS TOTAL_DEBITO
FROM CT2010
WHERE CT2_DATA BETWEEN '20141101' AND '20141130'
AND (CT2_DEBITO = '4050101001' OR CT2_CREDIT = '4050101001' )
GROUP BY CT2_CREDIT,CT2_DEBITO,CT2_CCC,CT2_CCD
ORDER BY CT2_CREDIT,CT2_CCD,CT2_CCC

Por favor Acessar ou Registrar para participar da conversa.

Mais
9 anos 11 meses atrás #26343 por rcaps
Respondido por rcaps no tópico Ajuda com Query do SQL
Esta solução eu já tinha testado, e não funciona, pois continua colando primeiro um bloco depois outro... Valeu !


CT2_CREDIT CT2_DEBITO CT2_CCC CT2_CCD TOTAL_CREDITO TOTAL_DEBITO
2011501001 4050101001 1401001 0 25716,6
2011501001 4050101001 1401002 0 5597,04
2011501001 4050101001 1401003 0 42209,71
2011501001 4050101001 1401004 0 7152,34
2011501001 4050101001 1403001 0 10552,44
2011501001 4050101001 1403002 0 25883,6
2011501001 4050101001 1403010 0 32261,56
2011501001 4050101001 1403011 0 42074,84
2011501001 4050101001 1501001 0 38241,58
2011501001 4050101001 1501002 0 8852,92
4050101001 2011501001 1401001 -232,22 0
4050101001 2011501001 1401002 -3,9 0
4050101001 2011501001 1401003 -554,56 0
4050101001 2011501001 1401004 -36,8 0
4050101001 2011501001 1403001 -4 0
4050101001 2011501001 1403002 -137,42 0
4050101001 2011501001 1403010 -10,3 0
4050101001 2011501001 1403011 -177,5 0
4050101001 2011501001 1501001 -123,08 0
4050101001 2011501001 1501002 -16,7 0

Abs.

Raul.

Por favor Acessar ou Registrar para participar da conversa.

Mais
9 anos 11 meses atrás #26345 por admin
Respondido por admin no tópico Ajuda com Query do SQL
Raul mas as contas possuem numeração diferente como vai colocar na mesma linha ?

Não estou entendendo.

desculpe.

CT2_CREDIT CT2_DEBITO CT2_CCC CT2_CCD TOTAL_CREDITO TOTAL_DEBITO
2011501001 4050101001 1401001 0 25716,6
2011501001 4050101001 1401002 0 5597,04

CT2_CREDIT CT2_DEBITO CT2_CCC CT2_CCD TOTAL_CREDITO TOTAL_DEBITO
4050101001 2011501001 1401001 -232,22 0
4050101001 2011501001 1401002 -3,9 0

Por favor Acessar ou Registrar para participar da conversa.

Mais
9 anos 11 meses atrás #26346 por admin
Respondido por admin no tópico Ajuda com Query do SQL
Tenta ai:

SELECT CT2_CREDIT,
CT2_DEBITO,
CT2_CCC,
CT2_CCD,
SUM( CASE WHEN CT2_CREDIT = '4050101001' THEN CT2_VALOR*-1 ELSE 0 END) AS TOTAL_CREDITO,
(SELECT SUM(CT2_VALOR) FROM CT2010 CTT2 WHERE CTT2.D_E_L_E_T_ = '' AND CTT2.CT2_DEBITO = CT2.CT2_CREDIT AND CTT2.CT2_DATA BETWEEN '20141101' AND '20141130') AS TOTAL_DEBITO
FROM CT2010 CT2
WHERE CT2_DATA BETWEEN '20141101' AND '20141130'
AND (CT2_DEBITO = '4050101001' OR CT2_CREDIT = '4050101001' )
GROUP BY CT2_CREDIT,CT2_DEBITO,CT2_CCC,CT2_CCD
ORDER BY CT2_CREDIT,CT2_CCD,CT2_CCC

Por favor Acessar ou Registrar para participar da conversa.

Mais
9 anos 11 meses atrás #26349 por rcaps
Respondido por rcaps no tópico Ajuda com Query do SQL
Então esta é que é a treta...
Na contabilidade tenho valores lançados a credito e a debito na mesma conta, que é a 4050101001 ( ct2_debito e ct2_credit ).
Queria somar os valores de debito e credito quando as contas forem iguais e que ficassem na mesma linha no retorno da query :

valor_debito conta debito valor credito conta credito c.de custo saldo
100,00 4050101001 50,00 4050101001 1401001 50,00
250,00 4050101001 5,00 4050101001 1401002 245,00

Quando tem lcto. na conta a debito 4050101001 a conta a credito é 2011501001
Quando tem lcto. na conta a credito 4050101001 a conta a debito é 2011501001 porque é partida dobrada...

o último exemplo também não funcionou... Valeu !

Raul

Por favor Acessar ou Registrar para participar da conversa.

Tempo para a criação da página:0.125 segundos
Joomla templates by a4joomla