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]Inner Join com outro Select

    Leandro
    Leandro
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1601
    Registrado : 12/11/2009

    [Resolvido]Inner Join com outro Select Empty [Resolvido]Inner Join com outro Select

    Mensagem  Leandro 2/1/2014, 17:29

    Boa tarde a todos,

    Estive tentando diminuir o número de consultas gráficas e para isso pensei em utilizar um Inner Join com outro Select mas sem sucesso.
    Abaixo está um Select que no Inner Join tem uma consulta (Consulta4), estive tentando substituir essa Consulta4 pelo Select e vermelho.
    Será possível?

    SELECT [%$##@_Alias].CodServ, Format$([Dtf],"mmmm yyyy") AS DT, Count([%$##@_Alias].CodServ) AS Qtde, Min([%$##@_Alias].Dtf) AS MínDeDtf, Consulta4.Qtd AS QtdeTotal
    FROM (SELECT CodServ, Dtf, [CodServ] & Format$([Dtf],"ddmmyy") AS Rel1
    FROM TabDadosImportadosTrat
    WHERE (((Int(Now()-[Dtf]))>2))) INNER JOIN Consulta4 ON [%$##@_Alias].CodServ = Consulta4.CodServ
    GROUP BY [%$##@_Alias].CodServ, Format$([Dtf],"mmmm yyyy"), Consulta4.Qtd;

    SELECT [%$##@_Alias].CodServ, Count([%$##@_Alias].CodServ) AS Qtd
    FROM (SELECT CodServ, Dtf, [CodServ] & Format$([Dtf],"ddmmyy") AS Rel1
    FROM TabDadosImportadosTrat
    WHERE (((Int(Now()-[Dtf]))>2)))
    GROUP BY [%$##@_Alias].CodServ;


    Muito obrigado

    Leandro
    Leandro
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1601
    Registrado : 12/11/2009

    [Resolvido]Inner Join com outro Select Empty Re: [Resolvido]Inner Join com outro Select

    Mensagem  Leandro 2/1/2014, 17:49

    Agradeço a quem possa ter dado uma olhada no tópico e gastou algum tempo pesquisando.

    Estive pesquinsando também e encontrei a solução. O segundo Select que eu tentava inserir no Inner Join já tinha como fonte ou Select, talvez fosse aí que acontecesse o erro de compilação.
    Então substituí o Select:

    SELECT [%$##@_Alias].CodServ, Count([%$##@_Alias].CodServ) AS Qtd
    FROM (SELECT CodServ, Dtf, [CodServ] & Format$([Dtf],"ddmmyy") AS Rel1
    FROM TabDadosImportadosTrat
    WHERE (((Int(Now()-[Dtf]))>2)))
    GROUP BY [%$##@_Alias].CodServ;


    Por esse:

    SELECT CodServ, Count(Dtf) AS ContarDeDtf
    FROM TabDadosImportadosTrat
    WHERE (((Int(Now()-[Dtf]))>2))
    GROUP BY CodServ;


    E todo o Select ficou assim:

    SELECT [%$##@_Alias].CodServ, Format$([Dtf],"mmmm yyyy") AS DT, Count([%$##@_Alias].CodServ) AS Qtde, Min([%$##@_Alias].Dtf) AS MínDeDtf, C5.ContarDeDtf
    FROM (SELECT CodServ, Dtf, [CodServ] & Format$([Dtf],"ddmmyy") AS Rel1
    FROM TabDadosImportadosTrat
    WHERE (((Int(Now()-[Dtf]))>2))) INNER JOIN (SELECT CodServ, Count(Dtf) AS ContarDeDtf
    FROM TabDadosImportadosTrat
    WHERE (((Int(Now()-[Dtf]))>2))
    GROUP BY CodServ) C5 ON [%$##@_Alias].CodServ = C5.CodServ
    GROUP BY [%$##@_Alias].CodServ, Format$([Dtf],"mmmm yyyy"), C5.ContarDeDtf;

    Funciona plenamente.  Very Happy 

    A minha pesquisa foi neste link: http://stackoverflow.com/questions/11574442/inner-join-vs-inner-join-select-from


      Data/hora atual: 29/4/2024, 16:48