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


    [Resolvido]Contar ocorrencias em consulta

    avatar
    Daluque
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 218
    Registrado : 06/03/2012

    [Resolvido]Contar ocorrencias em consulta Empty Contar ocorrencias em consulta

    Mensagem  Daluque 24/8/2012, 00:58

    Amigos, preciso de uma ajuda com relação ao BD anexo.
    tenho que fazer uma consulta e não estou conseguindo.
    Com base nas tabelas do BD preciso que a consulta me traga:
    1. Quantas pessoas entraram no inicio do acolhimento
    2. quantas entraram depois
    3. quantas sairam
    4. quantas permaneceram até o fechamento do caso.

    desde já agradeço
    Anexos
    [Resolvido]Contar ocorrencias em consulta AttachmentAcolhimento.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (11 Kb) Baixado 51 vez(es)


    .................................................................................
    Daluque

    Office 2003
    avatar
    Convidado
    Convidado


    [Resolvido]Contar ocorrencias em consulta Empty Re: [Resolvido]Contar ocorrencias em consulta

    Mensagem  Convidado 24/8/2012, 04:57

    Quais os parametros que utiliza para diferenciar cada caso?

    Quer contar as Equipes ou pessoas?

    Cumprimentos.
    avatar
    Daluque
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 218
    Registrado : 06/03/2012

    [Resolvido]Contar ocorrencias em consulta Empty Re: [Resolvido]Contar ocorrencias em consulta

    Mensagem  Daluque 24/8/2012, 12:16

    Olá PILOTO, bom dia.

    Quais os parametros que utiliza para diferenciar cada caso?

    desculpe, não entendi a pergunta. cada registro de caso tem a chave primária (CasoId) e o código interno que é sequencial (na tabela enviada não está devido eu ter feito modificações para o envio ao forum) a tabela NucleoFamiliar está relacionada à tabela caso tambem através do campo CasoId.

    Quer contar as Equipes ou pessoas?

    Necessito contar pessoas. acredito que o raciocínio, que não consigo transformar em SQL seria mais ou menos isso: Quantas pessoas (Tabela NucleoFamiliar), com CasoId X (igual ao CasoId da tabela Caso) tem NucDtIng = DtAcolhim(TabelaCaso). *Pessoas no Inicio*

    quantas pessoas tem NucDtIng, diferente ou maior (não sei qual a melhor opção) de DtAcolhim(Tabela Caso). *Pessoas ingressaram posteriormente*

    quantas pessoas sairam antes do encerramento do caso: NucDtSaida diferente ou Menor (não sei qual a melhor opção) de DtSaida (Tabela Caso).

    quantas pessoas sairam no encerramento do caso: NucDtSaida = DtSaida (Tabela Caso).



    não sei se respondi suas perguntas a contento e nem se o raciocinio exposto está correto, mas a necessidade é essa e não estou conseguindo elaborar a consulta.



    agradeço a colaborãção dos colegas.


    .................................................................................
    Daluque

    Office 2003
    avatar
    Convidado
    Convidado


    [Resolvido]Contar ocorrencias em consulta Empty Re: [Resolvido]Contar ocorrencias em consulta

    Mensagem  Convidado 24/8/2012, 15:05

    Vamos ver se bem entendi, Crie uma consulta baseada na tabela Nucleo familiar, nesta consulta em um campo não acoplado cole:

    Numero Casos: "(" & DContar("*";"NucleoFamiliar";"CasoID =" & [CasoID]) & ") - Pessoas para o caso" & " - " & [CasoId]

    Abra a consulta e veja se para o numero de pessoas com o CasoID está correta e retorne.

    Aguardo.
    avatar
    Convidado
    Convidado


    [Resolvido]Contar ocorrencias em consulta Empty Re: [Resolvido]Contar ocorrencias em consulta

    Mensagem  Convidado 24/8/2012, 15:34

    No caso para contar campos que envolvam a tabela casos foi necessário modificar o nome do campo CasoId na tabela nucleo familiar, pois estava dando conflito ao efetuar consulta baseada nas duas tabelas. Pois bem ficou assim as duas contagens:

    >>> Renomeeie na tabela NucleoFamiliar o campo CasoID para IDCaso

    NucDtIng_Maior_DtAcolhim: Dcount("*";"CnsNucleoFamiliar";"NucDtIng > [DtAcolhim]")

    Numero Casos: "(" & DContar("*";"NucleoFamiliar";"IDCaso =" & [IDCaso]) & ") - Pessoas para o caso" & " - " & [IDCaso]


    SQL da consulta:

    SELECT NucleoFamiliar.NucleoId, NucleoFamiliar.IDCaso, NucleoFamiliar.NucNome, NucleoFamiliar.NucRef, NucleoFamiliar.NucDtIng, NucleoFamiliar.NucDtSaida, NucleoFamiliar.NucDtNasc, NucleoFamiliar.NucGenero, Caso.DtAcolhim, "(" & DCount("*","NucleoFamiliar","IDCaso =" & [IDCaso]) & ") - Pessoas para o caso" & " - " & [IDCaso] AS [Numero Casos], DCount("*","CnsNucleoFamiliar","NucDtIng > [DtAcolhim]") AS NucDtIng_Maior_DtAcolhim
    FROM Caso INNER JOIN NucleoFamiliar ON Caso.CasoId = NucleoFamiliar.IDCaso;



    Teste estas duas contagens e retorno.


    Cumprimentos.
    avatar
    Convidado
    Convidado


    [Resolvido]Contar ocorrencias em consulta Empty Re: [Resolvido]Contar ocorrencias em consulta

    Mensagem  Convidado 24/8/2012, 16:19

    Eis a consulta completa:

    https://dl.dropbox.com/u/26441349/Daluque.rar


    Cumprimentos.
    avatar
    Daluque
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 218
    Registrado : 06/03/2012

    [Resolvido]Contar ocorrencias em consulta Empty Re: [Resolvido]Contar ocorrencias em consulta

    Mensagem  Daluque 25/8/2012, 01:09

    Piloto, obrigado pela sua colaboração.
    Acho que não me expliquei corretamente, então anexo o modelo que voce enviou com uma tabela com a explicação da minha necessidade.

    obrigado e desculpe o transtorno.
    Anexos
    [Resolvido]Contar ocorrencias em consulta AttachmentAcolhimento_Explica.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (17 Kb) Baixado 33 vez(es)


    .................................................................................
    Daluque

    Office 2003
    avatar
    Convidado
    Convidado


    [Resolvido]Contar ocorrencias em consulta Empty Re: [Resolvido]Contar ocorrencias em consulta

    Mensagem  Convidado 25/8/2012, 14:34

    Para mim sua explicação foi clara como o dia, vejamos:

    Necessito contar pessoas. acredito que o raciocínio, que não consigo transformar em SQL seria mais ou menos isso: Quantas pessoas (Tabela NucleoFamiliar), com CasoId X (igual ao CasoId da tabela Caso) tem NucDtIng = DtAcolhim(TabelaCaso). *Pessoas no Inicio*

    quantas pessoas tem NucDtIng, diferente ou maior (não sei qual a melhor opção) de DtAcolhim(Tabela Caso). *Pessoas ingressaram posteriormente*

    quantas pessoas sairam antes do encerramento do caso: NucDtSaida diferente ou Menor (não sei qual a melhor opção) de DtSaida (Tabela Caso).

    quantas pessoas sairam no encerramento do caso: NucDtSaida = DtSaida (Tabela Caso).

    Como solicitou foi feito, Estou errado?

    Cumprimentos
    avatar
    Convidado
    Convidado


    [Resolvido]Contar ocorrencias em consulta Empty Re: [Resolvido]Contar ocorrencias em consulta

    Mensagem  Convidado 25/8/2012, 14:55

    O que faltou em toda sua explicação foram apenas duas palavrinhas que fazem muita diferença:

    "Por Caso"

    O Tempo urge e é o que mais temos de escasso ultimamente, portanto ao postar a dúvida procure sempre ser o mais detalhista possível assim evitando dar voltas sem necessidade.

    https://dl.dropbox.com/u/26441349/Daluque_1.rar


    Cumprimentos.
    avatar
    Daluque
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 218
    Registrado : 06/03/2012

    [Resolvido]Contar ocorrencias em consulta Empty Re: [Resolvido]Contar ocorrencias em consulta

    Mensagem  Daluque 25/8/2012, 19:46

    Piloto, não funcionou.

    Se voce reparar na sua consulta o CasoId 50 traz como valor do campo Atual -1.
    não é possivel haver numero negativo.
    fazendo um teste no CasoId 21 adicionei uma data de saida (NucDtSaida)para um dos membros e a consulta continua retornando "0" para o campo. não sei mas acho que ela não consegue enxergar NucDtSaida < [DtSaida] , se DtSaida for Nulo.

    Mas tudo bem, acho que já tá de bom tamanho. vou tentar me basear no que foi enviado para chegar ao ponto.

    obrigado e desculpe pelo transtorno.


    .................................................................................
    Daluque

    Office 2003
    avatar
    Convidado
    Convidado


    [Resolvido]Contar ocorrencias em consulta Empty Re: [Resolvido]Contar ocorrencias em consulta

    Mensagem  Convidado 25/8/2012, 20:54

    Este e o caminho... realmente há um problema com campos em nulo, basta uma boa observação para resolver..

    Mas o caminho das pedras é este.

    Não foi transtorno nenhum, apenas escrevi o post para ver que não errei quanto ao entendimento original do tópico.


    Cumprimentos.
    avatar
    Convidado
    Convidado


    [Resolvido]Contar ocorrencias em consulta Empty Re: [Resolvido]Contar ocorrencias em consulta

    Mensagem  Convidado 25/8/2012, 21:14

    Este caso o que siginifica?
    NucDtIng_Maior_DtAcolhim_PorCaso

    Os outros são:

    Sairam no encerramento
    Sairam antes do encerramento
    Atual


    Este Acima o que significa.. qual o status?


    Cumprimentos.
    avatar
    Convidado
    Convidado


    [Resolvido]Contar ocorrencias em consulta Empty Re: [Resolvido]Contar ocorrencias em consulta

    Mensagem  Convidado 25/8/2012, 21:44

    Abra a consulta CnsNucleoFamiliar_1 em modo SQL e substitua a SQL por esta:

    SELECT NucleoFamiliar.IDCaso, "(" & DCount("*","NucleoFamiliar","IDCaso =" & [IDCaso]) & ") - Pessoas para o caso" & " - " & [IDCaso] AS [Numero Casos], DCount("*","CnsNucleoFamiliar","IDCaso = " & [IDCaso] & " And NucDtIng = [DtAcolhim]") AS Ingresso, DCount("*","CnsNucleoFamiliar","IDCaso = " & [IDCaso] & " And NucDtIng > [DtAcolhim]") AS Adicional, DCount("*","CnsNucleoFamiliar","IDCaso = " & [IDCaso] & " And NucDtSaida = [DtSaida]") AS Sairam_NoEncerramento, DCount("*","CnsNucleoFamiliar","IDCaso = " & [IDCaso] & " And NucDtSaida < [DtSaida]") AS Sairam_AntesDoEncerramento, (DCount("*","CnsNucleoFamiliar","IDCaso = " & [IDCaso] & " And NucDtIng = [DtAcolhim]")+DCount("*","CnsNucleoFamiliar","IDCaso = " & [IDCaso] & " And NucDtIng > [DtAcolhim]"))-(DCount("*","CnsNucleoFamiliar","IDCaso = " & [IDCaso] & " And NucDtSaida < [DtSaida]")+DCount("*","CnsNucleoFamiliar","IDCaso = " & [IDCaso] & " And NucDtSaida = [DtSaida]")) AS Atual
    FROM Caso INNER JOIN NucleoFamiliar ON Caso.CasoId = NucleoFamiliar.IDCaso
    GROUP BY NucleoFamiliar.IDCaso, "(" & DCount("*","NucleoFamiliar","IDCaso =" & [IDCaso]) & ") - Pessoas para o caso" & " - " & [IDCaso], DCount("*","CnsNucleoFamiliar","IDCaso = " & [IDCaso] & " And NucDtIng = [DtAcolhim]"), DCount("*","CnsNucleoFamiliar","IDCaso = " & [IDCaso] & " And NucDtIng > [DtAcolhim]"), DCount("*","CnsNucleoFamiliar","IDCaso = " & [IDCaso] & " And NucDtSaida = [DtSaida]"), DCount("*","CnsNucleoFamiliar","IDCaso = " & [IDCaso] & " And NucDtSaida < [DtSaida]"), (DCount("*","CnsNucleoFamiliar","IDCaso = " & [IDCaso] & " And NucDtIng = [DtAcolhim]")+DCount("*","CnsNucleoFamiliar","IDCaso = " & [IDCaso] & " And NucDtIng > [DtAcolhim]"))-(DCount("*","CnsNucleoFamiliar","IDCaso = " & [IDCaso] & " And NucDtSaida < [DtSaida]")+DCount("*","CnsNucleoFamiliar","IDCaso = " & [IDCaso] & " And NucDtSaida = [DtSaida]"));


    Cumprimentos.


    Última edição por PILOTO em 25/8/2012, 21:48, editado 1 vez(es) (Motivo da edição : Correção)
    avatar
    Daluque
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 218
    Registrado : 06/03/2012

    [Resolvido]Contar ocorrencias em consulta Empty Re: [Resolvido]Contar ocorrencias em consulta

    Mensagem  Daluque 26/8/2012, 23:01

    Piloto, mais uma vez obrigado pelo seu empenho.
    Tentei muito e cheguei tambem nessa composição.
    acontece que ainda falta um detalhezinho que não está deixando funcionar como deveria.
    Em SairamAntesdoEncerramento, caso o campo DtSaida seja Nulo e o campo NucDtSaida não seja,sendo o caso ainda em andamento. deveria aparecer a contagem desses e não está ocorrendo.
    Opção 1 (Caso Encerrado=DtSaida<>Nulo: Ingressaram+Adicionais-SairamAntes=Final
    Opção 2 (Caso em Curso=DtSaida=Nulo: Ingressaram+Adicionais-SairamAntes=Atual

    Não consigo colocar em SQL, mas acho que seria:
    CasoId=IDCaso E NucDtSaida < DtSaida OU NucDtSaida Não Nulo e DtSaida Nulo.

    Estou desde a manhã tentando diversas formas mas até agora sem sucesso.

    agradeço se voce ou outro colega puder continar colaborando.

    abraço.


    .................................................................................
    Daluque

    Office 2003
    avatar
    Convidado
    Convidado


    [Resolvido]Contar ocorrencias em consulta Empty Re: [Resolvido]Contar ocorrencias em consulta

    Mensagem  Convidado 27/8/2012, 20:53

    Dica


    Você pode utilizar a função DCount para contar o número de registros que contenham um campo específico que não seja a origem de registros em que seu formulário ou relatório esteja baseado. Por exemplo, você pode exibir o número de pedidos na tabela Pedidos em um controle calculado em um formulário baseado na tabela Produtos.

    A função DCount não conta registros que contenham valores Null no campo referenciado por expr, a menos que expr seja o caractere curinga de asterisco (*). Se você vir um asterisco, a função DCount calculará o número total de registros, incluindo aqueles que contenham campos Null. O exemplo a seguir calcula o número de registros em uma tabela Pedidos.

    intX = DCount("*", "Pedidos")


    ou seja... Substitua o * pelo campo a ser contado.. e em caso de nulo ele não será contado.

    Agora.. Tm expressoes que vai buscar dois campos Nulos... pois na tabela casos, há casos (DtSaida) que estao nulos tambem..


    Mas sua solução trilha por esta dica.

    Bons Estudos.
    avatar
    Daluque
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 218
    Registrado : 06/03/2012

    [Resolvido]Contar ocorrencias em consulta Empty Re: [Resolvido]Contar ocorrencias em consulta

    Mensagem  Daluque 27/8/2012, 22:50

    Boa Noite, Piloto.

    Consegui chegar ao esperado.
    Com sua colaboração e uma boa pesquisada, achei num site da Microsoft um material sobre o uso dos operadores lógicos "AND" e "OR" e aí acertando e errando deu certo no final. anexo o exemplo.

    muito obrigado. até

    Putz. não acho a opção [RESOLVIDO]
    Anexos
    [Resolvido]Contar ocorrencias em consulta AttachmentAcolhimento resolvido.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (13 Kb) Baixado 64 vez(es)


    .................................................................................
    Daluque

    Office 2003
    avatar
    Convidado
    Convidado


    [Resolvido]Contar ocorrencias em consulta Empty Re: [Resolvido]Contar ocorrencias em consulta

    Mensagem  Convidado 27/8/2012, 23:25

    Fiquei muito feliz em ver que resolveu, a maioria apenas querem mastigado os exemplos e você ao contrário correu atrás e com as dicas resolveu a questão.

    Eu até havia tentado assim como voce utilizando o Not IsNull, porem me esqueci de colocar entre aspas, como divido o tempo entre trabalho e outras ajudas no fórum não me dediquei integralmente a dúvida, porém assim é o espírito do Fórum pegarmos o fio da meada e ir em busca da solução.

    Parabéns.

    Colocarei o Resolvido pra ti.

    O Fórum agradece o Retorno.

    Sucesso!

    Conteúdo patrocinado


    [Resolvido]Contar ocorrencias em consulta Empty Re: [Resolvido]Contar ocorrencias em consulta

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 22/11/2024, 19:18