none
Ajuda com comando RRS feed

  • Pergunta

  • Ola pessoal

    Estou tentando fazer um select dentro do outro e esta me dando um erro, se alguem pode me ajudar?

    set dateformat dmy

     

    select  tblwrirecepcao.PK_Recepcao, 

    Convert(char(10), Convert(date,tblWRIRecepcao.DtPrenotacao,112),103) as Data_Recepcao,

    Convert(char(10), Convert(date,tblwrititulos.DataUltimoRegistro,112),103) as Data_Registro,

    sum (tblWRIAtosCustasNegocios.Valor1) as Cartorio,

    sum (tblWRIAtosCustasNegocios.Valor6) as ISS

    from tblwriatos ,

     

      ( select  tblwrirecepcao.PK_Recepcao, tblwrirecepcao.DtRecolhimentoPrenotacao,

    sum (tblwrirecepcao.ValorPrn1) Cartorio,

    sum (tblwrirecepcao.ValorPrn6 ) ISS

     

    from tblwrirecepcao

    inner join tblwrititulos on tblwrititulos.FK_tblWRIRecepcaoRecepcao = tblwrirecepcao.PK_Recepcao

    where tblwrirecepcao.DtRecolhimentoPrenotacao is not null

    and tblWRIRecepcao.DtRecolhimentoPrenotacao>'05/05/2017'

    and tblwrirecepcao.DtRecolhimentoPrenotacao <'31/05/2017'

     

     

    group by tblwrirecepcao.PK_Recepcao,tblwrirecepcao.DtCancelamento,tblwrirecepcao.DtRecolhimentoPrenotacao

    order by  tblwrirecepcao.DtCancelamento asc) As Titulo

     

    inner join tblWRIAtosNegocios on tblWRIAtosNegocios.FK_tblWRIAtos_Id = tblwriatos.PK_Id

    inner join tblWRIAtosCustasNegocios on tblWRIAtosCustasNegocios.FK_tblWRIAtosNegocios_Id = tblWRIAtosNegocios.PK_ID

    inner join tblwriatostitulos on tblwriatostitulos.FK_tblWRIAtos_Id = tblwriatos.PK_Id

    inner join tblWRITitulos on tblwrititulos.FK_tblWRIRecepcaoRecepcao = tblWRIAtosTitulos.FK_tblWRIRecepcaoRecepcao

    inner join tblwrirecepcao on tblwrirecepcao.PK_Recepcao = tblwrititulos.FK_tblWRIRecepcaoRecepcao

     

    where tblwrirecepcao.DtPrenotacao >= '07/05/2017'

    and tblwrirecepcao.DtPrenotacao <= '30/05/2017'

    and tblwrititulos.DataUltimoRegistro is not null

    group by tblWRIRecepcao.DtPrenotacao, tblWRIAtos.DataAto,tblwrirecepcao.PK_Recepcao,

    tblwrititulos.DataUltimoRegistro

    order by tblWRIRecepcao.DtPrenotacao, tblWRIAtos.DataAto,tblwrirecepcao.PK_Recepcao,

    tblwrititulos.DataUltimoRegistro

     

     

    Msg 1033, Level 15, State 1, Line 22

    The ORDER BY clause is invalid in views, inline functions, derived tables, subqueries, and common table expressions, unless TOP, OFFSET or FOR XML is also specified.

    Tem uma forma de manter isso com select e mesmo assim conseguir o resultado?


    MCP - MCTS - MCTS AD


    • Editado Daniel_Lima quinta-feira, 8 de junho de 2017 20:09 acres
    quinta-feira, 8 de junho de 2017 19:55

Respostas

  • Deleted
    sexta-feira, 9 de junho de 2017 00:03
  • Bom dia,

    Por falta de retorno esta thread esta encerrada !

    Por gentileza, caso necessário abra uma nova thread.

    Atenciosamente,


    Guilherme Macedo S

    Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    TechNet Community Support

    Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    • Marcado como Resposta Daniel_Lima quinta-feira, 5 de dezembro de 2019 14:24
    segunda-feira, 12 de junho de 2017 13:15

Todas as Respostas

  • Você não pode usar ORDER BY para classificar linhas na tabela derivada pelo motivo indicado na mensagem de erro. A ordem das linhas no conjunto de resultados é controlada por uma cláusula ORDER BY no SELECT externo. 

    Se tiver mais dúvidas, dá uma olhada nesse link:

    https://blogs.msdn.microsoft.com/fcatae/2010/04/16/desafio-usando-order-by-dentro-de-uma-view/

    quinta-feira, 8 de junho de 2017 20:11
  • set dateformat dmy
     
    select  tblwrirecepcao.PK_Recepcao, 
    Convert(char(10), Convert(date,tblWRIRecepcao.DtPrenotacao,112),103) as Data_Recepcao,
    Convert(char(10), Convert(date,tblwrititulos.DataUltimoRegistro,112),103) as Data_Registro,
    sum (tblWRIAtosCustasNegocios.Valor1) as Cartorio,
    sum (tblWRIAtosCustasNegocios.Valor6) as ISS
    from tblwriatos ,
     
      ( select  tblwrirecepcao.PK_Recepcao, tblwrirecepcao.DtRecolhimentoPrenotacao,
    sum (tblwrirecepcao.ValorPrn1) Cartorio,
    sum (tblwrirecepcao.ValorPrn6 ) ISS
     
    from tblwrirecepcao
    inner join tblwrititulos on tblwrititulos.FK_tblWRIRecepcaoRecepcao = tblwrirecepcao.PK_Recepcao
    where tblwrirecepcao.DtRecolhimentoPrenotacao is not null
    and tblWRIRecepcao.DtRecolhimentoPrenotacao>'05/05/2017'
    and tblwrirecepcao.DtRecolhimentoPrenotacao <'31/05/2017'
     
     
    group by tblwrirecepcao.PK_Recepcao,tblwrirecepcao.DtCancelamento,tblwrirecepcao.DtRecolhimentoPrenotacao
    ) As Titulo
     
    inner join tblWRIAtosNegocios on tblWRIAtosNegocios.FK_tblWRIAtos_Id = tblwriatos.PK_Id
    inner join tblWRIAtosCustasNegocios on tblWRIAtosCustasNegocios.FK_tblWRIAtosNegocios_Id = tblWRIAtosNegocios.PK_ID
    inner join tblwriatostitulos on tblwriatostitulos.FK_tblWRIAtos_Id = tblwriatos.PK_Id
    inner join tblWRITitulos on tblwrititulos.FK_tblWRIRecepcaoRecepcao = tblWRIAtosTitulos.FK_tblWRIRecepcaoRecepcao
    inner join tblwrirecepcao on tblwrirecepcao.PK_Recepcao = tblwrititulos.FK_tblWRIRecepcaoRecepcao
     
    where tblwrirecepcao.DtPrenotacao >= '07/05/2017'
    and tblwrirecepcao.DtPrenotacao <= '30/05/2017'
    and tblwrititulos.DataUltimoRegistro is not null
    group by tblWRIRecepcao.DtPrenotacao, tblWRIAtos.DataAto,tblwrirecepcao.PK_Recepcao,
    tblwrititulos.DataUltimoRegistro
    order by tblWRIRecepcao.DtPrenotacao, tblWRIAtos.DataAto,tblwrirecepcao.PK_Recepcao,
    tblwrititulos.DataUltimoRegistro

    Tente dessa forma.

    Conforme o Filipe informou, você não pode ter order by em sub-selects


    "A vida é um paraíso, mas os homens não o sabem e não se preocupam em sabê-lo." Fiodor Dostoievski

    quinta-feira, 8 de junho de 2017 20:15
  • Deleted
    sexta-feira, 9 de junho de 2017 00:03
  • Agradeço a ajuda de todos ( obrigado pela paciencia)

    Na verdade eu precisava somar os campos Cartorio e ISS da query principal com a subquery, e inicialmente tentei ver se conseguiria pelo menos rodar as duas juntas.

    Porem ainda esta ocorrendo o erro na linha 24 e 25 

    Msg 4104, Level 16, State 1, Line 24
    The multi-part identifier "tblwriatos.PK_Id" could not be bound.
    Msg 4104, Level 16, State 1, Line 26
    The multi-part identifier "tblwriatos.PK_Id" could not be bound.

    inner join tblWRIAtosNegocios on tblWRIAtosNegocios.FK_tblWRIAtos_Id = tblwriatos.PK_Id
    inner join tblWRIAtosCustasNegocios on tblWRIAtosCustasNegocios.FK_tblWRIAtosNegocios_Id = tblWRIAtosNegocios.PK_ID
    inner join tblwriatostitulos on tblwriatostitulos.FK_tblWRIAtos_Id = tblwriatos.PK_Id

    Essas linhas nao dao problema se rodar separadamente


    MCP - MCTS - MCTS AD

    sexta-feira, 9 de junho de 2017 11:51
  • Isso começou a dar depois que você tirou o Order By? O que você mudou na sua Query?
    sexta-feira, 9 de junho de 2017 12:15
  • Bom dia,

    Por falta de retorno esta thread esta encerrada !

    Por gentileza, caso necessário abra uma nova thread.

    Atenciosamente,


    Guilherme Macedo S

    Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    TechNet Community Support

    Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    • Marcado como Resposta Daniel_Lima quinta-feira, 5 de dezembro de 2019 14:24
    segunda-feira, 12 de junho de 2017 13:15