Como Ficaria a Instrução SQL?

Delphi

24/03/2004

Tenho os seguintes campos na tabela LCTOCXDIARIO: DATA, VALOR, OPERACAO, CONTA.
Preciso fazer um relatório que apresente duas colunas:
Uma com todos os lançamentos com OPERACAO = E, somando VALOR agrupadamente por CONTA e outra coluna com todos os lançamentos com OPERACAO = S, somando VALOR agrupadamente por CONTA.
Utilizo Firebird.
Alguém pode me ajudar a montar a instrução SQL? Obrigado.


Valdirdill

Valdirdill

Curtidas 0

Respostas

Paulo_amorim

Paulo_amorim

24/03/2004

Olá

eu já li um tópico aqui que tem esse mesmo comando SQL....

Mas, cá vamos...

tente fazer um comando WHERE op=´e´ UNION outro comando WHERE op=´s´...

mais ou menos assim

select SUM() as campo1, null as campo2 from ... where operacao=´E´
UNION
select null as campo1, SUM() as campo2 from ... where operacao=´S´


GOSTEI 0
Valdirdill

Valdirdill

24/03/2004

Olá eu já li um tópico aqui que tem esse mesmo comando SQL.... Mas, cá vamos... tente fazer um comando WHERE op=´e´ UNION outro comando WHERE op=´s´... mais ou menos assim select SUM() as campo1, null as campo2 from ... where operacao=´E´ UNION select null as campo1, SUM() as campo2 from ... where operacao=´S´


Tenho os seguintes campos na tabela LCTOCXDIARIO: DATA, VALOR, OPERACAO, CONTA.
Preciso fazer um relatório que apresente duas colunas:
Uma com todos os lançamentos com OPERACAO = E, somando VALOR agrupadamente por CONTA e outra coluna com todos os lançamentos com OPERACAO = S, somando VALOR agrupadamente por CONTA.
Utilizo Firebird.
Obrigado.


GOSTEI 0
Paulo_amorim

Paulo_amorim

24/03/2004

Tenho os seguintes campos na tabela LCTOCXDIARIO: DATA, VALOR, OPERACAO, CONTA. Preciso fazer um relatório que apresente duas colunas: Uma com todos os lançamentos com OPERACAO = E, somando VALOR agrupadamente por CONTA e outra coluna com todos os lançamentos com OPERACAO = S, somando VALOR agrupadamente por CONTA. Utilizo Firebird. Obrigado.


Olá
Tente assim...fiz um teste aqui e funcionou...

SELECT conta, somaE, somaS FROM
(
SELECT conta, SUM(valor) somaE, null somaS FROM lctocxdiario
WHERE operacao = ´E´ GROUP BY conta

UNION

SELECT conta, null somaE, SUM(valor) somaS FROM lctocxdiario
WHERE operacao = ´S´ GROUP BY conta
) as dados
GROUP BY conta

veja se a sintaxe dos labels (somaE, somaS, dados) estão corretas de acordo com o FB...mas de resto, creio que esteja certo

Até+


GOSTEI 0
Valdirdill

Valdirdill

24/03/2004

Fiz exatamente como você informou, mas quando tento abrir a query, dá a seguinte mensagem ´token unknown - line 3, char 1 SELECT´.

O pode ser?


[quote:b508fbde68=´valdirdill´]Tenho os seguintes campos na tabela LCTOCXDIARIO: DATA, VALOR, OPERACAO, CONTA. Preciso fazer um relatório que apresente duas colunas: Uma com todos os lançamentos com OPERACAO = E, somando VALOR agrupadamente por CONTA e outra coluna com todos os lançamentos com OPERACAO = S, somando VALOR agrupadamente por CONTA. Utilizo Firebird. Obrigado.


Olá
Tente assim...fiz um teste aqui e funcionou...

SELECT conta, somaE, somaS FROM
(
SELECT conta, SUM(valor) somaE, null somaS FROM lctocxdiario
WHERE operacao = ´E´ GROUP BY conta

UNION

SELECT conta, null somaE, SUM(valor) somaS FROM lctocxdiario
WHERE operacao = ´S´ GROUP BY conta
) as dados
GROUP BY conta

veja se a sintaxe dos labels (somaE, somaS, dados) estão corretas de acordo com o FB...mas de resto, creio que esteja certo

Até+[/quote:b508fbde68]


GOSTEI 0
Sremulador

Sremulador

24/03/2004

Amigo eu acho que e assim

SELECT conta, somaE, somaS FROM
(
SELECT conta, SUM(valor) [b:4da6c6f179]as[/b:4da6c6f179] somaE, null somaS FROM lctocxdiario
WHERE operacao = ´E´ GROUP BY conta
GROUP BY conta
UNION
SELECT conta, null somaE, SUM(valor) [b:4da6c6f179]as[/b:4da6c6f179] somaS FROM lctocxdiario
WHERE operacao = ´S´
GROUP BY conta


GOSTEI 0
Valdirdill

Valdirdill

24/03/2004

Agradeço sua ajuda, mas não está funcionando. Mudei e a mensagem de erro continua a mesma.

Amigo eu acho que e assim SELECT conta, somaE, somaS FROM ( SELECT conta, SUM(valor) [b:b8c8204114]as[/b:b8c8204114] somaE, null somaS FROM lctocxdiario WHERE operacao = ´E´ GROUP BY conta GROUP BY conta UNION SELECT conta, null somaE, SUM(valor) [b:b8c8204114]as[/b:b8c8204114] somaS FROM lctocxdiario WHERE operacao = ´S´ GROUP BY conta



GOSTEI 0
Sremulador

Sremulador

24/03/2004

tente tirar o group para ver se da certo ok


GOSTEI 0
POSTAR