- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- Ajuda com Query do SQL
×
Linguagem de Programação ADVPL
Perguntas Ajuda com Query do SQL
- rcaps
- Autor do Tópico
- Desconectado
- Membro Sénior
Menos
Mais
- Postagens: 69
- Obrigados Recebidos: 0
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
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.
- admin
- Desconectado
- Administrador
Menos
Mais
- Postagens: 297
- Obrigados Recebidos: 21
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
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.
- rcaps
- Autor do Tópico
- Desconectado
- Membro Sénior
Menos
Mais
- Postagens: 69
- Obrigados Recebidos: 0
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.
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.
- admin
- Desconectado
- Administrador
Menos
Mais
- Postagens: 297
- Obrigados Recebidos: 21
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
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.
- admin
- Desconectado
- Administrador
Menos
Mais
- Postagens: 297
- Obrigados Recebidos: 21
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
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.
- rcaps
- Autor do Tópico
- Desconectado
- Membro Sénior
Menos
Mais
- Postagens: 69
- Obrigados Recebidos: 0
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
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.
- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- Ajuda com Query do SQL
Tempo para a criação da página:0.081 segundos