Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Relatório usando duas consultas


Raoni Santos

Pergunta

Olá pessoal,

Gostaria que pudessem me ajudar na seguinte questao:

Eu tenho um relatório gerado a partir de uma consulta bidimensional (linhas X colunas), esta consulta é esta:

TRANSFORM Count(processos.processo) AS total

SELECT processos.SERVIDOR1

FROM (processos RIGHT JOIN assunto ON processos.assunto = assunto.Assunto) LEFT JOIN servidor ON processos.SERVIDOR1 = servidor.servidor

GROUP BY processos.SERVIDOR1

ORDER BY processos.SERVIDOR1

PIVOT assunto.Assunto;

Este relatório apresenta as informações dessa consulta da seguinte forma:

...............assunto1.....assunto2.....assunto3

servidor1......2................8..................1

servidor2......3................1..................0

servidor3......6................5..................3

porém preciso do seguinte:

Precisaria de uma outra consulta, semelhante a anterior, apenas alterando o "Count(processos.processo) AS total" POR "SUM([processos].[campo_livre5]) AS valor". O qual minha intenção é deixar o Relatório da seguinte forma:

......................assunto1............assunto2..........assunto3

servidor1......2 R$10,00.........8 R$19,00.........1 R$29,90

servidor2......3 R$38,40.........1 R$38,10.........0 R$34,98

servidor3......6 R$29,30.........5 R$95,50.........3 R$34,87

Resumindo, preciso colocar 2 dados dentro de um campo só, pra apresentar o numero da contagem das linhas, e o valor.

Se alguém puder me ajudar ficarei grato!

Editado por Raoni Santos
Link para o comentário
Compartilhar em outros sites

12 respostass a esta questão

Posts Recomendados

  • 0
o q você ta usando pra fazer o relatorio?? datareport??

você podia então adicionar os dois campos separados na consulta, e na hora de mostrar juntar os dois via codigo.

ou você converte os dois pra string e concatena no proprio select.

Ola,

Estou usando o access 2000 para gerar o relatório.

não entendi o ponto em que voce falou para adicionar os dois campos separados na consulta....

E em relação à converter os dois para string e concatená-los, acho que isso já me resolveria.....pesquisei na internet isso mas estou com dificuldades. Diante do meu problema o que eu poderia fazer?

Agadeço desde já cara!

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

acho q seria tipo isso:

(CStr(Count(processos.processo)) & " R$ " & CStr(SUM([processos].[campo_livre5]))) As Campo

você diz q ta fazendo o relatorio na opcao "Relatórios" dentro do access??

bom, se for talvez seja melhor eu mover o tópico pra access.

ai se isso ai não resolver, talvez fosse melhor você postar um printscreen do seu relatorio no design pra ver se a gente aqui entende melhor.

Link para o comentário
Compartilhar em outros sites

  • 0
acho q seria tipo isso:

(CStr(Count(processos.processo)) & " R$ " & CStr(SUM([processos].[campo_livre5]))) As Campo

você diz q ta fazendo o relatorio na opcao "Relatórios" dentro do access??

bom, se for talvez seja melhor eu mover o tópico pra access.

ai se isso ai não resolver, talvez fosse melhor você postar um printscreen do seu relatorio no design pra ver se a gente aqui entende melhor.

Opa, perfeito amigo

Isso mesmo estou fazendo pela opção Formulários do access com base em uma consulta a qual contem o sql la descrito no meu primeiro post.

não sei como postar imagem aqui, já dei o print screen. Se quiser fique a vontade para mover o conteudo para o assunto access!

Obrigado

Link para o comentário
Compartilhar em outros sites

  • 0

Kurói,

Fiz a alteração no codigo, pelo menos salvei a consulta sem que desse erro...

TRANSFORM (CStr(Count(*)) & " R$ " & CStr(SUM([processos].[campo_livre5]))) AS Campo

SELECT [processos].[sERVIDOR1], Count(*) AS total, Sum([processos].[campo_livre5]) AS totalvalor

FROM (processos RIGHT JOIN assunto ON [processos].[assunto]=[assunto].[Assunto]) LEFT JOIN servidor ON [processos].[sERVIDOR1]=[servidor].[servidor]

GROUP BY [processos].[sERVIDOR1]

ORDER BY [processos].[sERVIDOR1]

PIVOT [assunto].[Assunto];

porém na hora de executa-la, apareceu o seguinte erro:

> Uso inválido de 'Nulo' <

onde eu posso estar errando?

Link para o comentário
Compartilhar em outros sites

  • 0

é, mas esse campo campo_livre5 tem valor nulo em alguma linha??

se tiver vai dar esse erro mesmo.

se o problema for esse mesmo e se você der um update na tabela, assim deve resolver:

Update processos Set campo_livre5 = 0 Where IsNull(campo_livre5)
isso porque imagino q o campo_livre5 seja numerico ne?? porque se não for, nem o sum() vai funcionar. mas se por acaso, o programa q enche o banco for sempre gravando valor nulo nesse campo, você pode tentar por direto no select então:
TRANSFORM (CStr(Count(*)) & " R$ " & CStr(SUM(IIf(Not IsNull([processos].[campo_livre5]), [processos].[campo_livre5], 0)))) AS Campo

Link para o comentário
Compartilhar em outros sites

  • 0

então, mas como eu disse tome cuidado, porque se você fizer o update agora, mas depois mais valores nulos continuarem sendo gravados, não vai adiantar de nd, e ai você teria q usar o segundo codigo q passei (alem de q teria q por o IIf() tb no segundo Sum() q você faz la embaxo, q esqueci de dizer antes).

mas quanto ao update, clica la do lado em Consultas -> Criar consulta no modo Design, fecha a janela "Mostrar tabela" caso apareca alguma, ai clique no primero botaozinho la em cima no menu la em cima e seleciona Modo SQL. ai cole o codigo q passei e clique na exclamacao pra executar.

e ai pronto, veja se arrumou o relatorio.

Link para o comentário
Compartilhar em outros sites

  • 0

kURÓI,

Ta quase dando certo mas ifelizmente deu o erro novamente, fiz o update e deu certo.

eu percebi o seguinte:

Como estou fazendo uma tabela bidimensional, alterando as linhas como colunas e as colunas como linhas, no relatório fica campos em brancos.

To tentando achar algum site de postagem de fotos, pois estou no serviço e aqui muitos não abrem, logo te enviarei um print.

Link para o comentário
Compartilhar em outros sites

  • 0

Olá,

Aqui esta o relatório de como ele esta sem fazer a concatenação dos valoes:

http://cid-ec881e6bc766f25a.skydrive.live....x/album/img.jpg

A consulta ficou da seguinte maneira:

TRANSFORM (CStr(Count(*)) & " R$ " & CStr(SUM([processos].[campo_livre5]))) AS ttotal

SELECT [processos].[sERVIDOR1], Count(*) AS total, Sum([processos].[campo_livre5]) AS totalvalor

FROM (processos RIGHT JOIN assunto ON [processos].[assunto]=[assunto].[Assunto]) LEFT JOIN servidor ON [processos].[sERVIDOR1]=[servidor].[servidor]

GROUP BY [processos].[sERVIDOR1]

ORDER BY [processos].[sERVIDOR1]

PIVOT [assunto].[Assunto];

porem ainda da o erro da questao do Nulo

Link para o comentário
Compartilhar em outros sites

  • 0

Kurói

Cara, voce foi um savador da pátria....consegui fazer o relatório!!!! já passei pra minha chefe inclusive!

Seguinte, o que eu fiz foi: Retirei a clausula Cstr, ou seja, tirei a clausula que modificava do campo de numerico para String.....assim fiquei sabendo tmb que da pra concatenar valores numéricos.

Bom é isso ai...hoje já valeu o dia!

obrigado Kurói!

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...