olhando o teu sql e imaginando a tua tabela, me veio uma pergunta...
ele realmente está agrupando por tipo de visita, mas.. não é por pagou ou não
pago que ele quer o resultado?
tipo de visita = avulta ou contrato,
pagto_ok = sim ou não
logo,
se você deseja dividir as linhas em pagos e não pagos tem que incluir este
campo na consulta e no group by.
o resultado do sql tá correto para o que foi escrito, está agrupando por tipo
de visita, se você deseja o dados por pagto_ok (sim ou não) inclua-o na
consulta e no group by. Tente:
select visita.vis_tipovisita, visita.vis_pagto_ok, sum(vis_valor) valortotal,
(Select Sum(vis_valor) from visita visita_pagar
Where visita_pagar.vis_pagto_ok = 'NÃO'
And visita_pagar.vis_tipovisita Is Not Null
And visita_pagar.vis_tipovisita = visita.vis_tipovisita
And visita_pagar.vis_dt_inicio > '01/01/2006') As Pagar,
(Select Sum(vis_valor) from visita visita_paga
Where visita_paga.vis_pagto_ok = 'SIM'
And visita_paga.vis_tipovisita Is Not Null
And visita_paga.vis_tipovisita = visita.vis_tipovisita
And visita_paga.vis_dt_inicio > '01/01/2006') As Pagou
from visita
where vis_tipovisita is not null
and vis_dt_inicio > '01/01/2006'
group by visita.vis_tipovisita, visita.vis_pagto_ok
abs.
Júlio Abdala
José Roberto <[EMAIL PROTECTED]> escreveu:
Denner e Julio,
Usando este igual vcs indicaram
SQL pelo Ibexpert (Firebird)
select vis_tipovisita, sum(vis_valor) valortotal,
(Select Sum(vis_valor) from visita visita_pagar
Where visita_pagar.vis_pagto_ok = 'NÃO'
And visita_pagar.vis_tipovisita Is Not Null
And visita_pagar.vis_tipovisita = visita.vis_tipovisita
And visita_pagar.vis_dt_inicio > '01/01/2006') As Pagar,
(Select Sum(vis_valor) from visita visita_paga
Where visita_paga.vis_pagto_ok = 'SIM'
And visita_paga.vis_tipovisita Is Not Null
And visita_paga.vis_tipovisita = visita.vis_tipovisita
And visita_paga.vis_dt_inicio > '01/01/2006') As Pagou
from visita
where vis_tipovisita is not null
and vis_dt_inicio > '01/01/2006'
group by vis_tipovisita
dá esse Resultado
VIS_TIPOVISITA VALORTOTAL PAGAR PAGOU
Avulsa 1204 249 1335
Contrato 380 249 1335
Se eu ignorar o tipo da visita, tirando do select inicial
e do group by aí dá certo, mas aí não terei a separação que
queria, mas por enquanto usarei desta forma, mas se alguém tiver
alguma idéia, agradeço
-----Mensagem original-----
De: [email protected] [mailto:[EMAIL PROTECTED] Em
nome de Denner Bizarria Branco
Enviada em: sábado, 4 de fevereiro de 2006 07:23
Para: [email protected]
Assunto: Re: [delphi-br] Delphi + Quick Report + SQL
nos subselects coloca o alias que voce colocou na
tabela nas condições...
(Select Sum(vis_valor) from visita visita_paga
Where visita_paga.vis_pagto_ok = 'SIM'
And visita_paga.vis_tipovisita Is Not Null
And visita_paga.vis_tipovisita = visita.vis_tipovisita
And visita_paga.vis_dt_inicio > '01/01/2006') As Pagou
José Roberto wrote:
> Fiz dessa forma mas ainda não tá legal,
>
> select vis_tipovisita tipovisita, sum(vis_valor) valortotal,
>
> (select sum(vis_valor) from visita visita_pagar
> where vis_pagto_ok = 'NÃO'
> and visita.vis_tipovisita = visita_pagar.vis_tipovisita
> AND vis_tipovisita is not null) as Receber,
>
> (select sum(vis_valor) from visita visita_paga
> where vis_pagto_ok = 'SIM'
> AND vis_tipovisita is not null
> and visita.vis_tipovisita = visita_paga.vis_tipovisita
> and vis_dt_inicio > '01/01/2006') as Pagou
>
> from visita
> where vis_tipovisita is not null
> and vis_dt_inicio > '01/01/2006'
> group by vis_tipovisita
> O resultado ta assim
>
> TIPOVISITA VALORTOTAL RECEBER PAGOU
> Avulsa 1204 809 1335
> Contrato 380 809 1335
>
> Ele dá os totais mas ignora o tipo de visita nos dois subselects
>
> José Roberto
>
[As partes desta mensagem que não continham texto foram removidas]
--
<<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>
Links do Yahoo! Grupos
--
<<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>
Yahoo! Grupos, um serviço oferecido por: PUBLICIDADE
---------------------------------
Links do Yahoo! Grupos
Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/delphi-br/
Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]
O uso que você faz do Yahoo! Grupos está sujeito aos Termos do Serviço do
Yahoo!.
---------------------------------
Yahoo! doce lar. Faça do Yahoo! sua homepage.
---------------------------------
Yahoo! Acesso Grátis - Internet rápida e grátis. Instale o discador agora!
[As partes desta mensagem que não continham texto foram removidas]
--
<<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>
<*> Para ver as mensagens antigas, acesse:
http://br.groups.yahoo.com/group/delphi-br/messages
<*> Para falar com o moderador, envie um e-mail para:
[EMAIL PROTECTED]
Links do Yahoo! Grupos
<*> Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/delphi-br/
<*> Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]
<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html