Exibir mensagem anterior :: Exibir próxima mensagem |
Autor |
Mensagem |
tchadrack Novato

Registrado: Terça-Feira, 22 de Novembro de 2016 Mensagens: 32
|
Enviada: Qua Dez 28, 2016 5:07 pm Assunto: group by com subselect |
|
|
Simplificando, tenho 2 tabelas, 1 com contratos, e outra com lançamentos
Eu gostaria de saber como fazer uma consulta que retorne um resultado Como este:
contrato1 .... ... .. ..
lcto 143... R$ 23,42
lcto 223... R$ -12,54
lcto 331... R$ 11,20
Total Contrato 1 R$ 22,08
contrato 2 ............
lcto 234 R$ 10,00
lcto 432 R$ 20,00
lcto 231 R$ 15,00
Total Contrato 2 R$ 45,00
Total Geral Contratos ---R$ xxxxxx
Estou usando FireDac e delphi Xe7
obrigado |
|
Voltar ao Topo |
|
 |
joemil Moderador

Registrado: Quinta-Feira, 25 de Março de 2004 Mensagens: 9100 Localização: Sinop-MT
|
Enviada: Qua Dez 28, 2016 5:47 pm Assunto: |
|
|
veja um exemplo:
Código: | SELECT UF, DESCRICAO, COUNT(UF)
FROM cidades
GROUP BY uf, descricao
WITH ROLLUP |
o q faz a sumarizacao é o ROLLUP. da uma pesquisa sobre ele _________________ <b>SEMPRE COLOQUE [RESOLVIDO] NO SEU POST</b>
Enviar imagens: http://tinypic.com/ |
|
Voltar ao Topo |
|
 |
tchadrack Novato

Registrado: Terça-Feira, 22 de Novembro de 2016 Mensagens: 32
|
Enviada: Qua Dez 28, 2016 10:26 pm Assunto: |
|
|
joemil escreveu: | veja um exemplo:
Código: | SELECT UF, DESCRICAO, COUNT(UF)
FROM cidades
GROUP BY uf, descricao
WITH ROLLUP |
o q faz a sumarizacao é o ROLLUP. da uma pesquisa sobre ele |
Mas perceba que tem duas tabelas, uma com lançamentos (entradas e saídas)
outra com os contratos.
O resultado que procuro é mais ou menos isso:
contrato lancamento entrada saida valor
1
|____________lcto x 10 1 9
|____________lcto xx 1 0 1
total do contrato 1 -------------------------------- 10
2
|____________lcto yx 11 1 10
|____________lcto yxyx 1 2 -1
total do contrato 2 -------------------------------- 9 |
|
Voltar ao Topo |
|
 |
joemil Moderador

Registrado: Quinta-Feira, 25 de Março de 2004 Mensagens: 9100 Localização: Sinop-MT
|
Enviada: Qui Dez 29, 2016 8:29 am Assunto: |
|
|
eu te dei um exemplo, agora so adaptar para as suas necessidades.
posta o select q vc ta usando pra facilitar _________________ <b>SEMPRE COLOQUE [RESOLVIDO] NO SEU POST</b>
Enviar imagens: http://tinypic.com/ |
|
Voltar ao Topo |
|
 |
tchadrack Novato

Registrado: Terça-Feira, 22 de Novembro de 2016 Mensagens: 32
|
Enviada: Qui Dez 29, 2016 5:09 pm Assunto: |
|
|
joemil escreveu: | eu te dei um exemplo, agora so adaptar para as suas necessidades.
posta o select q vc ta usando pra facilitar |
Código: |
SQL.Add('select clcimo.contrato,cllan.lcto as lancamento,cllan.vencto,clttl.descr,');
SQL.Add('case ctacre when ''P'' then case stbonif when ''B'' then case cllan.tipo when 1 then cllan.valor - cllan.vldesc else cllan.valor end else cllan.valor end else 0 end as credito,');
SQL.Add('case cllan.tipo when 1 then cllan.vlrcomis end as comissao,');
SQL.Add('case ctadeb when ''P'' then cllan.valor end as debito,');
SQL.Add('case ctacre when ''P'' then (case stbonif when ''B'' then case cllan.tipo when 1 then (cllan.valor - cllan.vldesc - cllan.vlrcomis) else cllan.valor - cllan.vlrcomis end else cllan.valor - cllan.vlrcomis end) else -cllan.valor end as total');
SQL.Add(' from clcimo');
SQL.Add(' join cllan on cllan.contr=clcimo.contrato and cllan.situ=0 and ctaloc=0 and vencto < :dataatual');
SQL.Add(' join clttl on clttl.codigo=cllan.tipo');
SQL.Add(' where clcimo.locado = :locador and clcimo.temcontr = 1');
SQL.Add(' order by clcimo.contrato'); |
|
|
Voltar ao Topo |
|
 |
douglas_fc Profissional


Registrado: Quarta-Feira, 26 de Mai de 2010 Mensagens: 672
|
Enviada: Seg Jan 09, 2017 10:02 am Assunto: |
|
|
bom dia,
melhor vc postar a estrutura das suas tabelas para melhor entendimento! _________________ O conhecimento só tem valor quando compartilhado!
Douglas Sousa |
|
Voltar ao Topo |
|
 |
tchadrack Novato

Registrado: Terça-Feira, 22 de Novembro de 2016 Mensagens: 32
|
Enviada: Qua Jan 11, 2017 8:31 am Assunto: |
|
|
douglas_fc escreveu: | bom dia,
melhor vc postar a estrutura das suas tabelas para melhor entendimento! |
Não precisa mais, já resolvi, Obrigado |
|
Voltar ao Topo |
|
 |
|