none
VIews entre banco RRS feed

  • Pergunta

  • Boa Tarde
    Como posso proceder para criação de view puxando de outro banco sql
    Query abaixo

     
    SELECT
                      total.div [DIVISAO]
                    , total.dist [DISTRITO]
                    , SUBSTRING(total.codccu, 1, 5) [SETOR]
                    , MIN(total.nomccu) [DESC_SETOR]
                    , cargo.Codcar
                    , cargo.Desccar [FUNÇÃO]
                    , COUNT(cargo.Codcar) [QTD]
                    , CONVERT(DECIMAL(18,2), total.valsal) [FOLHA_UNI]
                    , CONVERT(DECIMAL(18,2), total.Insalubridade) [INSA.]
                    , CONVERT(DECIMAL(18,2), total.Periculosidade) [PERC.]

                    , CONVERT(DECIMAL(18,2), COUNT(cargo.Codcar)* total.SalTotal) [FOLHA_TOTAL]               
                                 FROM [vetorh].[rh_iss].[Usu_WorkFlow_Func] total WITH (NOLOCK)
                            left JOIN [vetorh].[rh_iss].[Usu_WorkFlow_Cargo] cargo WITH (NOLOCK)
                                     on (total.codcar = cargo.codcar)
                        WHERE
                                total.codccu NOT LIKE '9%'
                                AND cargo.Codcar<>'NULL '
                GROUP BY
                      total.div
                    , total.dist
                    , SUBSTRING(total.codccu, 1, 5)
                    , total.valsal
                    , cargo.Codcar
                    , cargo.Desccar
                    , total.SalTotal    
                    , total.Insalubridade
                    , total.Periculosidade         
                order by
                      total.div
                    , total.dist
                    , SUBSTRING(total.codccu, 1, 5)
           

    segunda-feira, 7 de agosto de 2017 16:27

Respostas

  • Boa tarde.

    Use a sintaxe: 

    Create view NomedaView as 
    SEU SELECT

    Mas...

    Uma view só pode conter a cláusula Order by se usar o TOP.

    Então, ou você coloca o TOP ou retira a cláusula Order by e usa quando consultar a view.

    Abs


    Vinicius Fonseca - MCP | MCTS | MCDBA | MCITP | MCTS | MCT | ITIL Foundation - DGA SISTEMAS - Se minha resposta for útil, classifique-a. :)



    segunda-feira, 7 de agosto de 2017 18:51
  • Deleted
    terça-feira, 8 de agosto de 2017 00:41

Todas as Respostas

  • Boa tarde,

    Teoricamente não deveria haver problema, ainda mais porque, se entendi bem estão no mesmo servidor, você está recebendo algum erro ao compilar?


    ​Rafael Esquiçato Professional Scrum Master MCP, MCTS

    segunda-feira, 7 de agosto de 2017 17:56
  • Seque um exemplo simples

    CREATE VIEW [dbo].[YourView] as select a.ID, a.SomeInfo, b.SomeOtherInfo from TableInA a join DatabaseB.dbo.TableInB b on -- your join logic goes here

    seque mais exemplos

    https://stackoverflow.com/questions/2143199/tsql-create-a-view-that-accesses-multiple-databases

    https://stackoverflow.com/questions/17951320/create-view-across-multiple-databases


    Wesley Neves - Brasilia-DF

     
    wesley.si.neves@gmail.com
    MTA-SQL Server
    MTA- Web Development
    Analista Desenvolvedor.NET
    Pós-Graduando em Banco de Dados 
    "Se a resposta for útil ou ajudar ,não esqueça de marcar"




    Wesley Neves



    Wesley Neves

    segunda-feira, 7 de agosto de 2017 18:00
  • Boa tarde.

    Use a sintaxe: 

    Create view NomedaView as 
    SEU SELECT

    Mas...

    Uma view só pode conter a cláusula Order by se usar o TOP.

    Então, ou você coloca o TOP ou retira a cláusula Order by e usa quando consultar a view.

    Abs


    Vinicius Fonseca - MCP | MCTS | MCDBA | MCITP | MCTS | MCT | ITIL Foundation - DGA SISTEMAS - Se minha resposta for útil, classifique-a. :)



    segunda-feira, 7 de agosto de 2017 18:51
  • Deleted
    terça-feira, 8 de agosto de 2017 00:41
  • Bom dia Marcos , o   José Diz, alertou em um ponto interessante ,tome cuidado com a construção

    do tipo campo ='NULL'

    veja o exemplo

    DECLARE @tabela TABLE
    (
     campo VARCHAR(10)
    )
    
    INSERT INTO @tabela
            ( campo )
    VALUES  ( NULL)
    
    SELECT * FROM @tabela AS T
    WHERE T.campo <> 'NULL'
    
    SELECT * FROM @tabela AS T
    WHERE T.campo = 'NULL' -- Aqui
    
    SELECT * FROM @tabela AS T
    WHERE T.campo IS NULL --aqui
    
    SELECT * FROM @tabela AS T
    WHERE T.campo IS NOT NULL
    
    

    Wesley Neves - Brasilia-DF

     
    wesley.si.neves@gmail.com
    MTA-SQL Server
    MTA- Web Development
    Analista Desenvolvedor.NET
    Pós-Graduando em Banco de Dados 
    "Se a resposta for útil ou ajudar ,não esqueça de marcar"




    Wesley Neves



    Wesley Neves

    terça-feira, 8 de agosto de 2017 11:28
  • obrigado pessoal
    terça-feira, 8 de agosto de 2017 15:38