|
Postada em 02/03/2011 18:53 hs
E ai pessoal, to com uma duvida bruta. Eu estou trabalhando em um relatorio de analise financeira, onde o programa irá buscar da tabela "Pagar" os campos subsetor, setor, valorpago, datapgto, situaçao o sql ficou este: With FrmComp sql = "select pagar.subsetor,sum(pagar.valorpago) as vlrpago, pagar.datapgto, setor.setor, setor.CODIGO from pagar inner join setor on pagar.setor = setor.codigo " sql = sql & "WHERE DATAPGTO >= #" & Format(.Ctxt(0).Text, "mm/dd/yyyy") & "# " sql = sql & "AND DATAPGTO <= #" & Format(.Ctxt(1).Text, "mm/dd/yyyy") & "#" sql = sql & "and SITUAÇAO LIKE '" & "Pag" & "' " End With sql = sql & " group by pagar.subsetor, setor.setor, SETOR.CODIGO, pagar.datapgto " sql = sql & " ORDER BY pagar.datapgto, pagar.subsetor"
Até ai ele funciona perfeitamente se eu colocar nos ctxt um periodo mensal referente a um mes somente por ex. .ctxt(0).text = 01/03/2011 e .ctxt(1).text = 31/03/2011 Porem apartir do momento que eu coloque um periodo anual q é a verdadeira funcionalidade do relatorios pra fazer balanço anual, ai ele não traz o programa da forma correta. Ele me traz os subsetores um a um vou subir a imagem do relatorio para vcs verem. O certo é o que faz o select de um unico mes RelCertoMes03.jpeg - https://docs.google.com/leaf?id=0B7BOn1qqQKEaN2FmZGU2ZTUtOTcyYi00ZWU0LTg2YWYtNjQ1ZTYzOTIzM2I2&hl=pt_BR
o errado é o que faz o select de varios meses RelErradomes 01 ao 03.jpeg - https://docs.google.com/leaf?id=0B7BOn1qqQKEaZDUxOGI1YmUtYTg3MC00NDg0LThkZjUtZWY4ZDcwNGNjM2Jk&hl=pt_BR
Bom desde já agradeço a ajuda de todos, valeu pessoal os links são do google docs.
|
|
|
|
|
Postada em 03/03/2011 09:41 hs
Adriano, o relatorio mes a mes funciona perfeitamente? janeiro, fevereiro,.... ate dezembro? Vc teria como emitir de cada mes para ver se algum mes esta furado. pq se nao tiver problemas de cadas mes, entao o anual bateria. Uma pergunta o setor existem en todos os registros do pagar. pq inner join indica que existe em ambos lados, casso contrario seria left join existe ou nao exista na tabela pagar.
Agora serai bom estrucutar corretamente o banco: o certo seria: tabela pagar codsetor Fk
tabela setores codsetor Pk
acho que ta errado isso: inner join setor on pagar.setor = setor.codigo
o certo seria: inner join setor on pagar.codsetor = setor.codsetor ou left join setor on pagar.codsetor = setor.codsetor
|
|
|
|