none
Datediff dos mesmos campos. RRS feed

  • Pergunta

  • Bom dia, eu gostaria de saber como eu faço um datediff dos mesmos campos. 
    Os primeiros movimentos são '1.1.10', '1.1.11' de Solicitação de Compras, 
    Os segundos são '1.1.20', '1.1.21' de Ordem de Compra 

    Segue o código:

    select m.CODCOLIGADA, m.IDMOV, m.CODTMV,
    DATEDIFF(DAY, m.DATAEMISSAO,
                                (
                                        select m.DATAEMISSAO
        from TMOV m 
        where m.CODCOLIGADA = 1
        and m.CODTMV in ('1.1.20', '1.1.21'))
       )
    from TMOV m 
    where m.CODCOLIGADA = 1
    and CODTMV in ('1.1.10', '1.1.11')
    segunda-feira, 30 de novembro de 2020 14:08

Todas as Respostas

  • Bom dia,

    Você quer utilizar como parâmetro o valor da coluna data de emissão de linhas diferentes?

    Como é o relacionamento de uma linha com a outra? Quais colunas devem ser utilizadas no relacionamento?

    Vai existir sempre só um tipo de movimento entre '1.1.10' e '1.1.11', e entre '1.1.20' e '1.1.21'? Se vai existir mais de um de cada par, como os tipos devem ser relacionados?

    Qual versão do SQL Server você está utilizando?

    Se puder, poste um exemplo com uma pequena amostra de dados da tabela e o respectivo resultado esperado para facilitar o entendimento da questão.


    Assinatura: http://www.imoveisemexposicao.com.br

    segunda-feira, 30 de novembro de 2020 14:55
  • Eu tenho a data emissão dos movimentos de Solicitação de Compras e Ordem de Compra. Quero saber em quanto tempo demorou para a nota ir de uma Solicitação de Compra para Ordem de Compra. Aí para isso, preciso da data emissão que a nota estava quando era Solicitação e a data emissão de quando ela virou Ordem de Compra. Para fazer um datediff entre as datas.
    segunda-feira, 30 de novembro de 2020 16:52
  • Não consigo sugerir nada com mais detalhes com as informações apresentadas.

    Se você estiver utilizando o SQL Server 2012 ou mais recente as funções Lead e Lag pode ser úteis, pois com elas é possível acessar o valor de linhas anteriores ou posteriores:

    https://docs.microsoft.com/pt-br/sql/t-sql/functions/lead-transact-sql?view=sql-server-ver15

    https://docs.microsoft.com/pt-br/sql/t-sql/functions/lag-transact-sql?view=sql-server-ver15

    Dependendo do caso também pode ser possível obter o resultado desejado com uma subquery como você tentou.


    Assinatura: http://www.imoveisemexposicao.com.br

    segunda-feira, 30 de novembro de 2020 18:31
  • Pode compartilhar um print da estrutura de dados e os dados?

    A dois registros pra cada nota?

    A funcao lead ou lag pode te ajudar dependendo da sua verão do SQL (se for dois registros por nota).


    Fabiano Carvalho

    segunda-feira, 30 de novembro de 2020 18:50
  • Kristen,

    Gostaria de entender como esta definido a estrutura do seu plano de contas.....


    Pedro Antonio Galvão Junior [MVP | MCC | MSTC | MIE | MTAC | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados Relacional e Data Warehouse | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]

    segunda-feira, 30 de novembro de 2020 21:43
  • Eu precisaria por exemplo, no meu exemplo, pegar a data de emissão da nota como Solicitação de Compra e como uma Ordem de Compra.

    Ex:

    datediff(DAY, data emissao de quando a nota era Solicitação de Compra, data emissao de quando a nota era Ordem de Compra)

    Pra me dizer quanto tempo demorou para a nota tornar-se ordem de compra

    quarta-feira, 2 de dezembro de 2020 18:49
  • Kristen,

    Então, mas estas datas estão na mesma tabela?


    Pedro Antonio Galvão Junior [MVP | MCC | MSTC | MIE | MTAC | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados Relacional e Data Warehouse | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]

    quinta-feira, 3 de dezembro de 2020 17:59
  • Sim, da mesma tabela: TMOV
    sexta-feira, 4 de dezembro de 2020 12:03
  • Bom dia, se possível, poste uma pequena amostra de dados da sua tabela.
    sexta-feira, 4 de dezembro de 2020 12:09