Raoni Santos Postado Março 3, 2009 Denunciar Share Postado Março 3, 2009 (editado) 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 totalSELECT processos.SERVIDOR1FROM (processos RIGHT JOIN assunto ON processos.assunto = assunto.Assunto) LEFT JOIN servidor ON processos.SERVIDOR1 = servidor.servidorGROUP BY processos.SERVIDOR1ORDER BY processos.SERVIDOR1PIVOT assunto.Assunto;Este relatório apresenta as informações dessa consulta da seguinte forma:...............assunto1.....assunto2.....assunto3servidor1......2................8..................1servidor2......3................1..................0servidor3......6................5..................3poré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..........assunto3servidor1......2 R$10,00.........8 R$19,00.........1 R$29,90servidor2......3 R$38,40.........1 R$38,10.........0 R$34,98servidor3......6 R$29,30.........5 R$95,50.........3 R$34,87Resumindo, 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 Março 3, 2009 por Raoni Santos Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kuroi Postado Março 3, 2009 Denunciar Share Postado Março 3, 2009 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. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Raoni Santos Postado Março 5, 2009 Autor Denunciar Share Postado Março 5, 2009 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 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kuroi Postado Março 5, 2009 Denunciar Share Postado Março 5, 2009 acho q seria tipo isso:(CStr(Count(processos.processo)) & " R$ " & CStr(SUM([processos].[campo_livre5]))) As Campovocê 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. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Raoni Santos Postado Março 5, 2009 Autor Denunciar Share Postado Março 5, 2009 acho q seria tipo isso:(CStr(Count(processos.processo)) & " R$ " & CStr(SUM([processos].[campo_livre5]))) As Campovocê 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 amigoIsso 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 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kuroi Postado Março 5, 2009 Denunciar Share Postado Março 5, 2009 o codigo q eu passei não deu então??pra mostrar a imagem, hospede ela num servidor, tipo http://www.imageshack.com e passe o link aqui.to movendo pra access então. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Raoni Santos Postado Março 5, 2009 Autor Denunciar Share Postado Março 5, 2009 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 CampoSELECT [processos].[sERVIDOR1], Count(*) AS total, Sum([processos].[campo_livre5]) AS totalvalorFROM (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? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kuroi Postado Março 5, 2009 Denunciar Share Postado Março 5, 2009 é, 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 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Raoni Santos Postado Março 5, 2009 Autor Denunciar Share Postado Março 5, 2009 Kurói, voce entendeu muito bem minha duvida, é exatamente isso, o campo Campo_livre5 é numérico sim, e contem valores em branco, ou seja nulos.Voce falou que preciso fazer o Update, desculpe a ignorancia, mas onde eu insiro este código? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kuroi Postado Março 5, 2009 Denunciar Share Postado Março 5, 2009 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. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Raoni Santos Postado Março 5, 2009 Autor Denunciar Share Postado Março 5, 2009 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. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Raoni Santos Postado Março 5, 2009 Autor Denunciar Share Postado Março 5, 2009 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.jpgA consulta ficou da seguinte maneira:TRANSFORM (CStr(Count(*)) & " R$ " & CStr(SUM([processos].[campo_livre5]))) AS ttotalSELECT [processos].[sERVIDOR1], Count(*) AS total, Sum([processos].[campo_livre5]) AS totalvalorFROM (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 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Raoni Santos Postado Março 5, 2009 Autor Denunciar Share Postado Março 5, 2009 KuróiCara, 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! Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Raoni Santos
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 SantosLink para o comentário
Compartilhar em outros sites
12 respostass a esta questão
Posts Recomendados
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.