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]Ajuda em consulta SQL

    avatar
    Jacir
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 45
    Registrado : 09/01/2011

    [Resolvido]Ajuda em consulta SQL Empty [Resolvido]Ajuda em consulta SQL

    Mensagem  Jacir Qui 12 maio - 13:17

    Olá, preciso criar uma consulta SQL/vba que filtre sempre as duas vendas mais recentes (de acordo com a data), considerando o CodigoCliente e CodigoProduto
    CodigoCliente CodigoProduto DataVenda Valor
    1 1 01/05/2011 45
    1 1 02/05/2011 34
    1 1 03/05/2011 23
    1 1 04/05/2011 23
    1 2 01/05/2011 14
    1 2 02/05/2011 16
    1 2 03/05/2011 17
    1 2 04/05/2011 32
    2 1 01/05/2011 45
    2 1 02/05/2011 34
    2 1 03/05/2011 23
    2 1 04/05/2011 23
    2 2 01/05/2011 14
    2 2 02/05/2011 16
    2 2 03/05/2011 17
    2 2 04/05/2011 32

    Considerando a tabela acima, o resultado ficaria:
    CodigoCliente CodigoProduto DataVenda Valor
    1 1 03/05/2011 23
    1 1 04/05/2011 23
    1 2 03/05/2011 17
    1 2 04/05/2011 32
    2 1 03/05/2011 23
    2 1 04/05/2011 23
    2 2 03/05/2011 17
    2 2 04/05/2011 32

    Obrigado,
    Jacir.
    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]Ajuda em consulta SQL Empty Re: [Resolvido]Ajuda em consulta SQL

    Mensagem  Alexandre Neves Qui 12 maio - 17:18

    Boa noite, Jacir

    À primeira vista, eu utilizaria este código (verifique se funciona):
    'texto SQL
    SELECT CodigoCliente, CodigoProduto, Last(DataVenda), Last(Valor) FROM TabelaVendas GROUP BY CodigoCliente, CodigoProduto UNION SELECT CodigoCliente, CodigoProduto, PenData(CodigoCliente,CodigoProduto), PenValor(CodigoCliente,CodigoProduto) FROM TabelaVendas GROUP BY CodigoCliente, CodigoProduto

    'Criar duas funções
    Function PenData(Cliente As Integer,Produto as Integer) As Date
    Dim Rst As DAO.Recordset
    Set Rst = CurrentDb.OpenRecordset("SELECT DataVenda FROM TabelaVendas WHERE CodigoCliente=" & Cliente & " and CodigoProduto=" & Produto & " ORDER BY DataVenda DESC;")
    If Not Rst.EOF Then
    Rst.MoveNext
    If Not Rst.EOF Then PenData = Rst(0)
    End If
    End Function

    Function PenValor(Cliente As Integer,Produto as Integer) As Date
    Dim Rst As DAO.Recordset
    Set Rst = CurrentDb.OpenRecordset("SELECT DataVenda, Valor FROM TabelaVendas WHERE CodigoCliente=" & Cliente & " and CodigoProduto=" & Produto & " ORDER BY DataVenda DESC;")
    If Not Rst.EOF Then
    Rst.MoveNext
    If Not Rst.EOF Then PenData = Rst(1)
    End If
    End Function

    Cumprimentos,
    avatar
    Jacir
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 45
    Registrado : 09/01/2011

    [Resolvido]Ajuda em consulta SQL Empty Não deu certo. Deu erro.

    Mensagem  Jacir Qui 12 maio - 18:47

    Oi Alexandre, obrigado pela resposta.
    Ocorreu um erro.
    Copiei ele em anexo
    Anexos
    [Resolvido]Ajuda em consulta SQL AttachmentDoc1.docx
    Você não tem permissão para fazer download dos arquivos anexados.
    (80 Kb) Baixado 6 vez(es)
    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]Ajuda em consulta SQL Empty Re: [Resolvido]Ajuda em consulta SQL

    Mensagem  Alexandre Neves Qui 12 maio - 18:52

    Claro, Jacir

    Substitua PenData por PenValor
    Cumprimentos,
    avatar
    Jacir
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 45
    Registrado : 09/01/2011

    [Resolvido]Ajuda em consulta SQL Empty Resolvido

    Mensagem  Jacir Qui 12 maio - 21:23

    Alexandre, e se ao invés dos dois primeiros, quisesse os 3 primeiros. É só mudar?
    Onde que eu deveria mudar?
    Se puder me dar mais essa dica, fico agradecido.
    Obrigado,
    Jacir.
    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]Ajuda em consulta SQL Empty Re: [Resolvido]Ajuda em consulta SQL

    Mensagem  Alexandre Neves Sex 13 maio - 5:34

    Bom dia, Jacir

    O fórum serve para tirar dúvidas e, a partir daí, cada um deve aprender. Não deve esperar o pronto-a-servir.
    No entanto, deixo-lhe o código também para que o estude.
    SELECT CodigoCliente, CodigoProduto, Last(DataVenda), Last(Valor) FROM TabelaVendas GROUP BY CodigoCliente, CodigoProduto UNION SELECT CodigoCliente, CodigoProduto, PenData(CodigoCliente,CodigoProduto), PenValor(CodigoCliente,CodigoProduto) FROM TabelaVendas GROUP BY CodigoCliente, CodigoProduto UNION SELECT CodigoCliente, CodigoProduto, PenData2(CodigoCliente,CodigoProduto), PenValor2(CodigoCliente,CodigoProduto) FROM TabelaVendas GROUP BY CodigoCliente, CodigoProduto

    Function PenData(Cliente As Integer,Produto as Integer) As Date
    Dim Rst As DAO.Recordset
    Set Rst = CurrentDb.OpenRecordset("SELECT DataVenda FROM TabelaVendas WHERE CodigoCliente=" & Cliente & " and CodigoProduto=" & Produto & " ORDER BY DataVenda DESC;")
    If Not Rst.EOF Then
    Rst.MoveNext
    If Not Rst.EOF Then PenData = Rst(0)
    End If
    End Function

    Function PenValor(Cliente As Integer,Produto as Integer) As Date
    Dim Rst As DAO.Recordset
    Set Rst = CurrentDb.OpenRecordset("SELECT DataVenda, Valor FROM TabelaVendas WHERE CodigoCliente=" & Cliente & " and CodigoProduto=" & Produto & " ORDER BY DataVenda DESC;")
    If Not Rst.EOF Then
    Rst.MoveNext
    If Not Rst.EOF Then PenValor = Rst(1)
    End If
    End Function

    Function PenData2(Cliente As Integer,Produto as Integer) As Date
    Dim Rst As DAO.Recordset
    Set Rst = CurrentDb.OpenRecordset("SELECT DataVenda FROM TabelaVendas WHERE CodigoCliente=" & Cliente & " and CodigoProduto=" & Produto & " ORDER BY DataVenda DESC;")
    If Not Rst.EOF Then
    Rst.MoveNext
    Rst.MoveNext
    If Not Rst.EOF Then PenData2 = Rst(0)
    End If
    End Function

    Function PenValor2(Cliente As Integer,Produto as Integer) As Date
    Dim Rst As DAO.Recordset
    Set Rst = CurrentDb.OpenRecordset("SELECT DataVenda, Valor FROM TabelaVendas WHERE CodigoCliente=" & Cliente & " and CodigoProduto=" & Produto & " ORDER BY DataVenda DESC;")
    If Not Rst.EOF Then
    Rst.MoveNext
    Rst.MoveNext
    If Not Rst.EOF Then PenValor2 = Rst(1)
    End If
    End Function

    Cumprimentos,
    avatar
    Jacir
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 45
    Registrado : 09/01/2011

    [Resolvido]Ajuda em consulta SQL Empty Resolvido

    Mensagem  Jacir Sex 13 maio - 10:51

    Obrigado. Jacir.
    avatar
    Jacir
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 45
    Registrado : 09/01/2011

    [Resolvido]Ajuda em consulta SQL Empty Incluir mais um campo de valor

    Mensagem  Jacir Ter 17 maio - 0:15

    Oi Alexandre.
    Estou tentando inclui mais um campo de valor chamado ValorDesconto, o qual gostaria que estivesse no formulário.
    Tentei de todas maneiras, mas não consegui fazer.
    Poderia me dar uma dica.
    Obrigado amigo.
    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]Ajuda em consulta SQL Empty Re: [Resolvido]Ajuda em consulta SQL

    Mensagem  Alexandre Neves Ter 17 maio - 11:52

    Boa tarde, Jacir

    Tem de estudar SQL.
    A instrução é SELECT Campo1, Campo2, ... FROM Tabela WHERE condição ORDER BY CampoOrdem;"
    Cumprimentos,
    avatar
    Jacir
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 45
    Registrado : 09/01/2011

    [Resolvido]Ajuda em consulta SQL Empty Quase

    Mensagem  Jacir Ter 17 maio - 15:14

    Oi Alexandre, desculpe amigo.
    Tentei colocar os campos na sql mas dá o seguinte erro "o número de colunas nas duas tabelas ou consultas selecionadas de uma consulta união não coicidem."


    Desculpe amigo, mas tentei de tudo.

    Se puder me ajudar.

    Obrigado,

    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]Ajuda em consulta SQL Empty Re: [Resolvido]Ajuda em consulta SQL

    Mensagem  Alexandre Neves Ter 17 maio - 15:26

    Sim, e não consegue vislumbrar que tem que adicionar os campos nas duas selecções:
    SELECT CampoAdicionado, .... UNION SELECT CampoAdicionado ...
    Cumprimentos,
    avatar
    Jacir
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 45
    Registrado : 09/01/2011

    [Resolvido]Ajuda em consulta SQL Empty Obrigado Alexandre

    Mensagem  Jacir Ter 17 maio - 16:16

    Amigo Alexandre, consegui fazer.

    Muito Obrigado amigo.

    Jacir.

    Conteúdo patrocinado


    [Resolvido]Ajuda em consulta SQL Empty Re: [Resolvido]Ajuda em consulta SQL

    Mensagem  Conteúdo patrocinado


      Data/hora atual: Qui 21 Nov - 16:57