Select Sum Sql - Firebird
Galera esse select está trazendo múltiplos valores:
select m.id,
(select sum(m.vlr_operacao) from mov_caixa m where m.tipo_ent_mov = 'CREDITO' AND M.data = '08.10.2021')
-
(select sum(m.vlr_operacao) from mov_caixa m where m.tipo_ent_mov = 'DEBITO' AND M.data = '08.10.2021') as VLR_TOTAL
from
mov_caixa m
group by m.id, m.vlr_operacao;
Alguem poderia me ajudar? No caso queria somente um resultado.
select m.id,
(select sum(m.vlr_operacao) from mov_caixa m where m.tipo_ent_mov = 'CREDITO' AND M.data = '08.10.2021')
-
(select sum(m.vlr_operacao) from mov_caixa m where m.tipo_ent_mov = 'DEBITO' AND M.data = '08.10.2021') as VLR_TOTAL
from
mov_caixa m
group by m.id, m.vlr_operacao;
Alguem poderia me ajudar? No caso queria somente um resultado.
Jefferson
Curtidas 0
Melhor post
Emerson Nascimento
15/10/2021
select data, sum(case when tipo_ent_mov = 'CREDITO' then vlr_operacao else 0 end) credito, sum(case when tipo_ent_mov = 'DEBITO' then vlr_operacao else 0 end) debito, sum(case when tipo_ent_mov = 'CREDITO' then vlr_operacao else 0 end) - sum(case when tipo_ent_mov = 'DEBITO' then vlr_operacao else 0 end) saldo from mov_caixa where data = '08.10.2021' group by data
GOSTEI 1
Mais Respostas
Jefferson
11/10/2021
CREATE GENERATOR GEN_MOV_CAIXA_ID;
CREATE TABLE MOV_CAIXA (
ID INTEGER NOT NULL,
MOVIMENTACAO VARCHAR(60),
TIPO_MOV VARCHAR(2),
VLR_OPERACAO DECIMAL(12,2),
USUARIO VARCHAR(10),
DATA TIMESTAMP,
FORM_PAGAMENTO VARCHAR(20),
ID_OP INTEGER,
NOME_CLIENTE VARCHAR(65),
ID_FUNCIONARIO INTEGER,
NOM_FUNCIONARIO VARCHAR(40),
TIPO_ENT_MOV VARCHAR(7)
);
DADOS:
INSERT INTO MOV_CAIXA (ID, MOVIMENTACAO, TIPO_MOV, VLR_OPERACAO, USUARIO, DATA, FORM_PAGAMENTO, ID_OP, NOME_CLIENTE, ID_FUNCIONARIO, NOM_FUNCIONARIO, TIPO_ENT_MOV)
VALUES (12, 'LANCAMENTO SUPRIMENTO', 'LC', 2, 'ADM', '2021-10-08 00:00:00', 'DINHEIRO', 4, NULL, 1, 'ADM', 'CREDITO');
INSERT INTO MOV_CAIXA (ID, MOVIMENTACAO, TIPO_MOV, VLR_OPERACAO, USUARIO, DATA, FORM_PAGAMENTO, ID_OP, NOME_CLIENTE, ID_FUNCIONARIO, NOM_FUNCIONARIO, TIPO_ENT_MOV)
VALUES (13, 'LANCAMENTO SUPRIMENTO', 'LC', 10, 'ADM', '2021-10-08 00:00:00', 'CARTAO CREDITO', 5, NULL, 1, 'ADM', 'CREDITO');
INSERT INTO MOV_CAIXA (ID, MOVIMENTACAO, TIPO_MOV, VLR_OPERACAO, USUARIO, DATA, FORM_PAGAMENTO, ID_OP, NOME_CLIENTE, ID_FUNCIONARIO, NOM_FUNCIONARIO, TIPO_ENT_MOV)
VALUES (14, 'LANCAMENTO SUPRIMENTO', 'LC', 5, 'ADM', '2021-10-08 00:00:00', 'CARTAO CREDITO', 6, NULL, 1, 'ADM', 'CREDITO');
INSERT INTO MOV_CAIXA (ID, MOVIMENTACAO, TIPO_MOV, VLR_OPERACAO, USUARIO, DATA, FORM_PAGAMENTO, ID_OP, NOME_CLIENTE, ID_FUNCIONARIO, NOM_FUNCIONARIO, TIPO_ENT_MOV)
VALUES (15, 'LANCAMENTO SANGRIA', 'LD', 4, 'ADM', '2021-10-08 00:00:00', 'DINHEIRO', 6, NULL, 1, 'ADM', 'DEBITO');
INSERT INTO MOV_CAIXA (ID, MOVIMENTACAO, TIPO_MOV, VLR_OPERACAO, USUARIO, DATA, FORM_PAGAMENTO, ID_OP, NOME_CLIENTE, ID_FUNCIONARIO, NOM_FUNCIONARIO, TIPO_ENT_MOV)
VALUES (16, 'LANCAMENTO SANGRIA', 'LD', 9, 'ADM', '2021-10-08 00:00:00', 'CARTAO CREDITO', 7, NULL, 1, 'ADM', 'DEBITO');
INSERT INTO MOV_CAIXA (ID, MOVIMENTACAO, TIPO_MOV, VLR_OPERACAO, USUARIO, DATA, FORM_PAGAMENTO, ID_OP, NOME_CLIENTE, ID_FUNCIONARIO, NOM_FUNCIONARIO, TIPO_ENT_MOV)
VALUES (17, 'VENDA APRAZO', 'VP', 138, 'ADM', '2021-10-08 00:00:00', 'DINHEIRO', 300, '3;ROGERIO ROBERIO DE SOUZA', 6, 'DANIELLA DA SILVA COSTA DE SOUZA', 'CREDITO');
INSERT INTO MOV_CAIXA (ID, MOVIMENTACAO, TIPO_MOV, VLR_OPERACAO, USUARIO, DATA, FORM_PAGAMENTO, ID_OP, NOME_CLIENTE, ID_FUNCIONARIO, NOM_FUNCIONARIO, TIPO_ENT_MOV)
VALUES (18, 'VENDA AVISTA', 'VA', 96, 'ADM', '2021-10-08 00:00:00', 'DINHEIRO', 301, '2;MAYCON DOUGLAS CAVALCANTE DE SOUZA', 4, 'JEFFERSON DOUGLAS CAVALCANTE DE SOUZA', 'CREDITO');
COMMIT WORK;
CREATE TABLE MOV_CAIXA (
ID INTEGER NOT NULL,
MOVIMENTACAO VARCHAR(60),
TIPO_MOV VARCHAR(2),
VLR_OPERACAO DECIMAL(12,2),
USUARIO VARCHAR(10),
DATA TIMESTAMP,
FORM_PAGAMENTO VARCHAR(20),
ID_OP INTEGER,
NOME_CLIENTE VARCHAR(65),
ID_FUNCIONARIO INTEGER,
NOM_FUNCIONARIO VARCHAR(40),
TIPO_ENT_MOV VARCHAR(7)
);
DADOS:
INSERT INTO MOV_CAIXA (ID, MOVIMENTACAO, TIPO_MOV, VLR_OPERACAO, USUARIO, DATA, FORM_PAGAMENTO, ID_OP, NOME_CLIENTE, ID_FUNCIONARIO, NOM_FUNCIONARIO, TIPO_ENT_MOV)
VALUES (12, 'LANCAMENTO SUPRIMENTO', 'LC', 2, 'ADM', '2021-10-08 00:00:00', 'DINHEIRO', 4, NULL, 1, 'ADM', 'CREDITO');
INSERT INTO MOV_CAIXA (ID, MOVIMENTACAO, TIPO_MOV, VLR_OPERACAO, USUARIO, DATA, FORM_PAGAMENTO, ID_OP, NOME_CLIENTE, ID_FUNCIONARIO, NOM_FUNCIONARIO, TIPO_ENT_MOV)
VALUES (13, 'LANCAMENTO SUPRIMENTO', 'LC', 10, 'ADM', '2021-10-08 00:00:00', 'CARTAO CREDITO', 5, NULL, 1, 'ADM', 'CREDITO');
INSERT INTO MOV_CAIXA (ID, MOVIMENTACAO, TIPO_MOV, VLR_OPERACAO, USUARIO, DATA, FORM_PAGAMENTO, ID_OP, NOME_CLIENTE, ID_FUNCIONARIO, NOM_FUNCIONARIO, TIPO_ENT_MOV)
VALUES (14, 'LANCAMENTO SUPRIMENTO', 'LC', 5, 'ADM', '2021-10-08 00:00:00', 'CARTAO CREDITO', 6, NULL, 1, 'ADM', 'CREDITO');
INSERT INTO MOV_CAIXA (ID, MOVIMENTACAO, TIPO_MOV, VLR_OPERACAO, USUARIO, DATA, FORM_PAGAMENTO, ID_OP, NOME_CLIENTE, ID_FUNCIONARIO, NOM_FUNCIONARIO, TIPO_ENT_MOV)
VALUES (15, 'LANCAMENTO SANGRIA', 'LD', 4, 'ADM', '2021-10-08 00:00:00', 'DINHEIRO', 6, NULL, 1, 'ADM', 'DEBITO');
INSERT INTO MOV_CAIXA (ID, MOVIMENTACAO, TIPO_MOV, VLR_OPERACAO, USUARIO, DATA, FORM_PAGAMENTO, ID_OP, NOME_CLIENTE, ID_FUNCIONARIO, NOM_FUNCIONARIO, TIPO_ENT_MOV)
VALUES (16, 'LANCAMENTO SANGRIA', 'LD', 9, 'ADM', '2021-10-08 00:00:00', 'CARTAO CREDITO', 7, NULL, 1, 'ADM', 'DEBITO');
INSERT INTO MOV_CAIXA (ID, MOVIMENTACAO, TIPO_MOV, VLR_OPERACAO, USUARIO, DATA, FORM_PAGAMENTO, ID_OP, NOME_CLIENTE, ID_FUNCIONARIO, NOM_FUNCIONARIO, TIPO_ENT_MOV)
VALUES (17, 'VENDA APRAZO', 'VP', 138, 'ADM', '2021-10-08 00:00:00', 'DINHEIRO', 300, '3;ROGERIO ROBERIO DE SOUZA', 6, 'DANIELLA DA SILVA COSTA DE SOUZA', 'CREDITO');
INSERT INTO MOV_CAIXA (ID, MOVIMENTACAO, TIPO_MOV, VLR_OPERACAO, USUARIO, DATA, FORM_PAGAMENTO, ID_OP, NOME_CLIENTE, ID_FUNCIONARIO, NOM_FUNCIONARIO, TIPO_ENT_MOV)
VALUES (18, 'VENDA AVISTA', 'VA', 96, 'ADM', '2021-10-08 00:00:00', 'DINHEIRO', 301, '2;MAYCON DOUGLAS CAVALCANTE DE SOUZA', 4, 'JEFFERSON DOUGLAS CAVALCANTE DE SOUZA', 'CREDITO');
COMMIT WORK;
GOSTEI 0
Jefferson
11/10/2021
Alguém que possa me ajudar?
GOSTEI 0
Emerson Nascimento
11/10/2021
tente algo assim:
e, para a data desejada:
select data, sum(case when tipo_ent_mov = 'CREDITO' then vlr_operacao else 0 end) credito, sum(case when tipo_ent_mov = 'DEBITO' then vlr_operacao else 0 end) debito from mov_caixa group by data
e, para a data desejada:
select data, sum(case when tipo_ent_mov = 'CREDITO' then vlr_operacao else 0 end) credito, sum(case when tipo_ent_mov = 'DEBITO' then vlr_operacao else 0 end) debito from mov_caixa where data = '08.10.2021' group by data
GOSTEI 0
Jefferson
11/10/2021
Boa noite Emerson!
Ficou bem melhor a estrutura do select, muito obrigado!
Só uma dúvida? No primeiro select do post, o select contém um sinal de (-), é possivél fazer essa operação de cálculo em apenas um select?
Ficou bem melhor a estrutura do select, muito obrigado!
Só uma dúvida? No primeiro select do post, o select contém um sinal de (-), é possivél fazer essa operação de cálculo em apenas um select?
GOSTEI 0
Jefferson
11/10/2021
Obrigado! Você é o cara, sei nem como agradecer...
GOSTEI 0