MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access


2 participantes

    [Resolvido]Consulta Acrescentar x Group By

    KKmelo
    KKmelo
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 70
    Registrado : 25/07/2012

    [Resolvido]Consulta Acrescentar x Group By Empty Consulta Acrescentar x Group By

    Mensagem  KKmelo 10/9/2012, 21:11

    Boa tarde,

    tenho uma consulta que "conta" a quantidade de exames realizados em um mês em determinada clínica. Dessa forma:

    CLINICA.....NOMEEXAME.....NOMEEXAME.....FATURADO
    agruparpor..agruparpor....contar........agruparpor

    eu queria transformar essa consulta em uma consulta acrescentar a uma tabela "ItensNota" acontece que, gera uma falha "Voce tentou executar uma consulta que nao inclui a expressao especificada como parte de uma função de agregação"

    alguém sabe dizer se é possível fazer esse tipo de acrescimo?


    .................................................................................
    Marcela Melo
    ______________________________________________________________________________________
    "O maior erro de uma pessoa é julgar-se incapaz antes mesmo de tentar..."
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8498
    Registrado : 05/11/2009

    [Resolvido]Consulta Acrescentar x Group By Empty Re: [Resolvido]Consulta Acrescentar x Group By

    Mensagem  Alexandre Neves 10/9/2012, 21:13

    Boa noite, KK
    Indique a instrução completa


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo
    KKmelo
    KKmelo
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 70
    Registrado : 25/07/2012

    [Resolvido]Consulta Acrescentar x Group By Empty Re: [Resolvido]Consulta Acrescentar x Group By

    Mensagem  KKmelo 10/9/2012, 21:29

    Alexandre, Segue a instrução:

    INSERT INTO T_ItensNota ( Clínica, NomeExame, ContarDeNomeExame, MesFaturamento )
    SELECT T_Encaminhamento.Clínica, T_Exame.NomeExame, Count(T_Exame.NomeExame) AS ContarDeNomeExame, T_Encaminhamento.MesFaturamento
    FROM T_Exame INNER JOIN T_Encaminhamento ON T_Exame.NomeExame = T_Encaminhamento.[Exames].Value
    GROUP BY T_Encaminhamento.Clínica, T_Exame.NomeExame, T_Encaminhamento.MesFaturamento, T_Encaminhamento.Faturado
    HAVING (((T_Encaminhamento.Faturado)=True))
    ORDER BY T_Exame.NomeExame;


    .................................................................................
    Marcela Melo
    ______________________________________________________________________________________
    "O maior erro de uma pessoa é julgar-se incapaz antes mesmo de tentar..."
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8498
    Registrado : 05/11/2009

    [Resolvido]Consulta Acrescentar x Group By Empty Re: [Resolvido]Consulta Acrescentar x Group By

    Mensagem  Alexandre Neves 10/9/2012, 21:34

    Para acrescentar na tabela, julgo não ser importante a ordem dos dados
    Normalmente, a ordenação é criada na consulta à tabela
    Tente assim
    INSERT INTO T_ItensNota (Clínica, NomeExame, ContarDeNomeExame, MesFaturamento) SELECT T_Encaminhamento.Clínica, T_Exame.NomeExame, Count(T_Exame.NomeExame), T_Encaminhamento.MesFaturamento
    FROM T_Exame INNER JOIN T_Encaminhamento ON T_Exame.NomeExame = T_Encaminhamento.Exames GROUP BY T_Encaminhamento.Clínica, T_Exame.NomeExame, T_Encaminhamento.MesFaturamento, T_Encaminhamento.Faturado HAVING T_Encaminhamento.Faturado=True;


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo
    KKmelo
    KKmelo
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 70
    Registrado : 25/07/2012

    [Resolvido]Consulta Acrescentar x Group By Empty Re: [Resolvido]Consulta Acrescentar x Group By

    Mensagem  KKmelo 11/9/2012, 03:04

    Alexandre,

    tentei fazer do modo como vc postou, mas dá o mesmo erro.
    Esqueci de mencionar um detalhe, o campo "NomeExame" é de múltiplos valores, então acrescentei .Value, mas mesmo assim aparece o erro "Voce tentou executar uma consulta que nao inclui a expressao especificada como parte de uma função de agregação"


    .................................................................................
    Marcela Melo
    ______________________________________________________________________________________
    "O maior erro de uma pessoa é julgar-se incapaz antes mesmo de tentar..."
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8498
    Registrado : 05/11/2009

    [Resolvido]Consulta Acrescentar x Group By Empty Re: [Resolvido]Consulta Acrescentar x Group By

    Mensagem  Alexandre Neves 11/9/2012, 09:32

    Olá, KK
    Este detalhe é importante e faz toda a diferença
    Se estiver a par da funcionalidade deste tipo de campo (nascido no 2007 para ajudar o utilizador, mascarando a tabela), saberá que ajuda para situações "normais" mas impossibilita muitos outros trabalhos.
    Para resolver convenientemente, só vejo uma solução: colocar as tabelas como deve ser, ou seja, ter uma outra tabela para gerir este campo


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo
    KKmelo
    KKmelo
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 70
    Registrado : 25/07/2012

    [Resolvido]Consulta Acrescentar x Group By Empty Re: [Resolvido]Consulta Acrescentar x Group By

    Mensagem  KKmelo 11/9/2012, 12:14

    Bom dia Alexandre,

    realmente esses campos de múltiplos valores ajudam a gente em algumas situações mas travam em outras. Como a tabela inicial está pronta e funcionando, eu resolvi criar o que precisava de outra maneira.
    Primeiro eu criei uma consulta "Criar tabela" para gerar uma tabela com esses dados.

    SELECT T_Encaminhamento.Clínica, T_Exame.NomeExame, Count(T_Exame.NomeExame) AS ContarDeNomeExame, T_Encaminhamento.MesFaturamento INTO T_ItensFaturamento
    FROM T_Exame INNER JOIN T_Encaminhamento ON T_Exame.NomeExame = T_Encaminhamento.Exames.Value
    GROUP BY T_Encaminhamento.Clínica, T_Exame.NomeExame, T_Encaminhamento.MesFaturamento, T_Encaminhamento.Faturado
    HAVING (((T_Encaminhamento.Faturado)=True));


    depois, através dessa nova tabela, eu acrescento os dados na tabela "ItensNotaFiscal" (porque essa tabela gera um sub formulário que as vezes é necessário inserir outros itens que não estão no encaminhamento)

    INSERT INTO T_ItensNota ( Clínica, NomeExame, ContarDeNomeExame, MesFaturamento )
    SELECT T_ItensFaturamento.Clínica, T_ItensFaturamento.NomeExame, T_ItensFaturamento.ContarDeNomeExame, T_ItensFaturamento.MesFaturamento
    FROM T_ItensFaturamento;


    Perfeito!

    O novo problema é que desse modo os dados duplicam. E lógico que se os dados forem duplicados, em meu relatório final o valor da nota será o dobro. Portanto criei uma consulta para encontrar esses dados duplicados:

    SELECT First(T_ItensNota.NotaFiscal) AS [NotaFiscal Campo], First(T_ItensNota.Clínica) AS [Clínica Campo], First(T_ItensNota.NomeExame) AS [NomeExame Campo], First(T_ItensNota.ContarDeNomeExame) AS [ContarDeNomeExame Campo], Count(T_ItensNota.NotaFiscal) AS NúmeroDeDupls
    FROM T_ItensNota
    GROUP BY T_ItensNota.NotaFiscal, T_ItensNota.Clínica, T_ItensNota.NomeExame, T_ItensNota.ContarDeNomeExame
    HAVING (((Count(T_ItensNota.NotaFiscal))>1) AND ((Count(T_ItensNota.ContarDeNomeExame))>1));


    e outra para excluir esses itens:

    DELETE [C_Encontrar duplicatas para T_ItensNota].[NotaFiscal Campo], [C_Encontrar duplicatas para T_ItensNota].[Clínica Campo], [C_Encontrar duplicatas para T_ItensNota].[NomeExame Campo], [C_Encontrar duplicatas para T_ItensNota].[ContarDeNomeExame Campo]
    FROM [C_Encontrar duplicatas para T_ItensNota];


    só que estou com dificuldade de criar os critérios para que a consulta exclua os itens certos, sem que seja preciso digitar nenhum parâmetro.

    Pode me dar uma luzinha??? Neutral Smile Neutral





    .................................................................................
    Marcela Melo
    ______________________________________________________________________________________
    "O maior erro de uma pessoa é julgar-se incapaz antes mesmo de tentar..."
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8498
    Registrado : 05/11/2009

    [Resolvido]Consulta Acrescentar x Group By Empty Re: [Resolvido]Consulta Acrescentar x Group By

    Mensagem  Alexandre Neves 11/9/2012, 12:47

    Olá, KK
    Veja se, com os dados duplicados, consegues obter dados simples
    SELECT DISTINCT First(T_ItensNota.NotaFiscal) AS [NotaFiscal Campo], First(T_ItensNota.Clínica) AS [Clínica Campo], First(T_ItensNota.NomeExame) AS [NomeExame Campo], First(T_ItensNota.ContarDeNomeExame) AS [ContarDeNomeExame Campo], Count(T_ItensNota.NotaFiscal) AS NúmeroDeDupls
    FROM T_ItensNota
    GROUP BY T_ItensNota.NotaFiscal, T_ItensNota.Clínica, T_ItensNota.NomeExame, T_ItensNota.ContarDeNomeExame
    HAVING (((Count(T_ItensNota.NotaFiscal))>1) AND ((Count(T_ItensNota.ContarDeNomeExame))>1));


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo
    KKmelo
    KKmelo
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 70
    Registrado : 25/07/2012

    [Resolvido]Consulta Acrescentar x Group By Empty Re: [Resolvido]Consulta Acrescentar x Group By

    Mensagem  KKmelo 11/9/2012, 15:22

    Alexandre,

    os resultados da consulta que vc me passou foram exatamente os mesmos desta consulta:


    SELECT First(T_ItensNota.NotaFiscal) AS [NotaFiscal Campo], First(T_ItensNota.Clínica) AS [Clínica Campo], First(T_ItensNota.NomeExame) AS [NomeExame Campo], First(T_ItensNota.ContarDeNomeExame) AS [ContarDeNomeExame Campo], Count(T_ItensNota.NotaFiscal) AS NúmeroDeDupls
    FROM T_ItensNota
    GROUP BY T_ItensNota.NotaFiscal, T_ItensNota.Clínica, T_ItensNota.NomeExame, T_ItensNota.ContarDeNomeExame
    HAVING (((Count(T_ItensNota.NotaFiscal))>1) AND ((Count(T_ItensNota.ContarDeNomeExame))>1));


    .................................................................................
    Marcela Melo
    ______________________________________________________________________________________
    "O maior erro de uma pessoa é julgar-se incapaz antes mesmo de tentar..."
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8498
    Registrado : 05/11/2009

    [Resolvido]Consulta Acrescentar x Group By Empty Re: [Resolvido]Consulta Acrescentar x Group By

    Mensagem  Alexandre Neves 11/9/2012, 18:05

    Já experimentou?
    a cláusula distinct deveria devolver apenas dados sem repetição dos campos seleccionados


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo
    KKmelo
    KKmelo
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 70
    Registrado : 25/07/2012

    [Resolvido]Consulta Acrescentar x Group By Empty Re: [Resolvido]Consulta Acrescentar x Group By

    Mensagem  KKmelo 12/9/2012, 14:34

    olá Alexandre,

    consegui resolver sim. a consulta que me passou solucionou o problema.

    Obrigada.


    .................................................................................
    Marcela Melo
    ______________________________________________________________________________________
    "O maior erro de uma pessoa é julgar-se incapaz antes mesmo de tentar..."
    KKmelo
    KKmelo
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 70
    Registrado : 25/07/2012

    [Resolvido]Consulta Acrescentar x Group By Empty Re: [Resolvido]Consulta Acrescentar x Group By

    Mensagem  KKmelo 12/9/2012, 14:34

    Smile


    .................................................................................
    Marcela Melo
    ______________________________________________________________________________________
    "O maior erro de uma pessoa é julgar-se incapaz antes mesmo de tentar..."
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8498
    Registrado : 05/11/2009

    [Resolvido]Consulta Acrescentar x Group By Empty Re: [Resolvido]Consulta Acrescentar x Group By

    Mensagem  Alexandre Neves 12/9/2012, 14:37

    Está a ver! ainda bem.


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo

    Conteúdo patrocinado


    [Resolvido]Consulta Acrescentar x Group By Empty Re: [Resolvido]Consulta Acrescentar x Group By

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 22/11/2024, 13:26