none
Ajuda Comando RRS feed

  • Pergunta

  • Ola amigos,

    estou precisando de uma ajuda para o comando abaixo:

    Eu preciso incluir a tabela tblsipusuarios.nome, quando fiz isso deu o seguinte erro

    Msg 4104, Level 16, State 1, Line 2

    The multi-part identifier "tblSIPUsuarios.NomeUser" could not be bound.

    SELECT

    tblSIPUsuarios

    .NomeUser as nome ( inclui essa tabela para trazer nome de usuario)

    FROM

    (SELECT DISTINCT

    dbo

    .tblWRIAndamentos.FK_tblWRIRecepcaoRecepcao AS Recepcao, dbo.tblWRIAndamentos.Data,  dbo.tblWRIAndamentos.FK_tblWRITpAndamento_Id AS TpAndamento, dbo.tblWRITpAndamentos.Sigla,

    (

    SELECT MIN(t.Data) AS Expr1

    FROM

      dbo.tblWRIAndamentos AS t INNER JOIN

    dbo

    .tblWRITpAndamentos AS p ON p.PK_Id = t.FK_tblWRITpAndamento_Id

    WHERE

    t.FK_tblWRIRecepcaoRecepcao = dbo.tblWRIAndamentos.FK_tblWRIRecepcaoRecepcao)

    AND

    (p.Sigla = 'iat')) AS DataLimite

    FROM

      dbo.tblWRIAndamentos

    INNER  

    JOIN dbo.tblWRITpAndamentos ON dbo.tblWRITpAndamentos.PK_Id = dbo.tblWRIAndamentos.FK_tblWRITpAndamento_Id

    inner 

    join dbo.tblSIPUsuarios on tblSIPUsuarios.IDUser = tblwriandamentos.FK_tblWRIUsuarioOrigem_Id

    WHERE

    (dbo.tblWRITpAndamentos.Sigla = 'ctr')

    AND

      (dbo.tblWRITpAndamentos.EnviaInternet = 1)

    AND 

    (dbo.tblWRIAndamentos.Data >= CONVERT(DATETIME, '2012-05-17 00:00:00', 102))) AS a

    WHERE 

     (Data < ISNULL(DataLimite, GETDATE()))

    GROUP

    BY Recepcao, Sigla

    ORDER

    BY Recepcao, Sigla

    Recepcao, MAX(Data) AS Data, MAX(TpAndamento) AS TpAndamento,

    ---------------------------------------------------------------------------------------------------- 

    Msg 4104, Level 16, State 1, Line 2

    The multi-part identifier "tblSIPUsuarios.NomeUser" could not be bound.

    • Editado Rafael-Santos quinta-feira, 17 de maio de 2012 22:56 wee
    quinta-feira, 17 de maio de 2012 22:55

Respostas

  • Com o comando GETDATE(), que retorna a data atual.

    AND (dbo.tblWRIAndamentos.Data >= GETDATE()) AS a
    Abraços!


    thiagokoelho

    • Marcado como Resposta Rafael-Santos sexta-feira, 18 de maio de 2012 16:15
    sexta-feira, 18 de maio de 2012 13:44
  • Cara to te dando trabalho hein..rs.rs

    Seguinte se eu deixar essa forma:

    (dbo.tblWRIAndamentos.Data >= CONVERT(DATETIME, '2012-05-17 00:00:00', 102)))

    Tras 180 registros neste dia no resultado

    se eu deixar desta forma

    AND (dbo.tblWRIAndamentos.Data >= GETDATE()) AS a

    nao traz nenhum registro

    Sera que tem alguma coisa a ver com o restante do comando para baixo dessa linha?

    • Marcado como Resposta Rafael-Santos sexta-feira, 18 de maio de 2012 16:15
    sexta-feira, 18 de maio de 2012 14:51
  • Porque tem 180 registros depois do dia 17/05 e nenhum depois de hoje (18/07), GETDATE() é a data de hoje e horário do momento da query.

    thiagokoelho

    • Marcado como Resposta Rafael-Santos sexta-feira, 18 de maio de 2012 16:15
    sexta-feira, 18 de maio de 2012 14:57
  • Entendi, coloquei o dia 18/05 e trouxe 55 registros, mas com o getdate() nao traz nenhum,

    Sera que ta pegando os segundos ?

    coloquei menor que o getdate() e trouxe, so que eu preciso igual a data do dia so que talvez ta trazendo com o segundos daquele momento acho que e isso nao e?

    Sera que tem que dar um convert no campo dbo.tblWRIAndamentos.Data ?

    bom se for possivel ajudar, mas cara ja te agradeço demais pela ajuda



    • Editado Rafael-Santos sexta-feira, 18 de maio de 2012 15:28 accrs
    • Marcado como Resposta Rafael-Santos sexta-feira, 18 de maio de 2012 16:15
    sexta-feira, 18 de maio de 2012 15:13
  • Tive que fazer assim

    AND

    (dbo.tblWRIAndamentos.Data >= CONVERT (date, GETDATE (), 103) )) AS aCara muito obrigado por tudo

    • Marcado como Resposta Rafael-Santos sexta-feira, 18 de maio de 2012 16:15
    sexta-feira, 18 de maio de 2012 16:15

Todas as Respostas

  • Rafael,

    Seu select está confuso, mas pelo que consegui ver você deve adicionar tblSIPUsuarios.NomeUser dentro dos campos do seu FROM, conforme esse trecho abaixo:

    SELECT DISTINCT

    dbo.tblWRIAndamentos.FK_tblWRIRecepcaoRecepcao AS Recepcao, dbo.tblWRIAndamentos.Data, dbo.tblWRIAndamentos.FK_tblWRITpAndamento_Id AS TpAndamento, dbo.tblWRITpAndamentos.Sigla, tblSIPUsuarios.NomeUser


    Acredito que com isso você conseguirá resolver esse erro.


    []'s
    Philipe Souza
    E-mail: Philipe.s.souza@hotmail.com

    sexta-feira, 18 de maio de 2012 00:52
  • Olá Rafael, você está buscando tblSIPUsuarios.NomeUser em uma query onde não tem essa tabela, veja:

    SELECT tblSIPUsuarios.NomeUser as Nome FROM
    (SELECT DISTINCT dbo.tblWRIAndamentos.FK_tblWRIRecepcaoRecepcao AS Recepcao, dbo.tblWRIAndamentos.Data, 
    dbo.tblWRIAndamentos.FK_tblWRITpAndamento_Id AS TpAndamento, dbo.tblWRITpAndamentos.Sigla,
    tblSIPUsuarios.NomeUser, --Faltou essa coluna
    (SELECT MIN(t.Data) AS Expr1
    FROM dbo.tblWRIAndamentos AS t 
    INNER JOIN dbo.tblWRITpAndamentos AS p 
    ON p.PK_Id = t.FK_tblWRITpAndamento_Id
    WHERE
    t.FK_tblWRIRecepcaoRecepcao = dbo.tblWRIAndamentos.FK_tblWRIRecepcaoRecepcao)
    AND (p.Sigla = 'iat')) AS DataLimite

    vc faz FROM para um SELECT onde não tem essa tabela...verifique se a query está correta e a propósito, tá ralando no WEBRI ein! rsrsrs

    Trabalhei no WEBTD e WEBRI já, manda um abraço pro meu amigo Julio e para o Sr. Simões.

    Abraços! Não hesite em perguntar!


    thiagokoelho

    sexta-feira, 18 de maio de 2012 01:12
  • Olá tiago e Philipe, Obrigado por responder

    Eu fiz a sugestao que voces indicaram e deu certo, porem o nome do usuario nao aparece no resultado do select, eu preciso que apareça  o nome do usuario, e pra isso eu precisava colocar ele no primeiro select, e quando eu coloco da o mesmo erro

    SELECT

    Recepcao, MAX(Data) AS Data, MAX(TpAndamento) AS TpAndamento,.NomeUser -- (erro nessa linha) (SELECT DISTINCT

    dbo

    dbo

    .tblWRIAndamentos.FK_tblWRIRecepcaoRecepcao AS Recepcao, dbo.tblWRIAndamentos.Data,  dbo .tblWRIAndamentos.FK_tblWRITpAndamento_Id AS TpAndamento, dbo.tblWRITpAndamentos.Sigla, .tblSIPUsuarios.NomeUser as nome,

    (

    SELECT MIN(t.Data) AS Expr1

    FROM 

    dbo.tblWRIAndamentos AS t INNER JOIN

    dbo

    .tblWRITpAndamentos AS p ON p.PK_Id = t.FK_tblWRITpAndamento_Id

    WHERE 

    (t.FK_tblWRIRecepcaoFlagRecepcao = dbo.tblWRIAndamentos.FK_tblWRIRecepcaoFlagRecepcao) AND

    (

    AND  

    t.FK_tblWRIRecepcaoRecepcao = dbo.tblWRIAndamentos.FK_tblWRIRecepcaoRecepcao) (p.Sigla = 'iat')) AS DataLimite

    FROM 

    dbo.tblWRIAndamentos

    INNER

    inner 

    JOIN dbo.tblWRITpAndamentos ON dbo.tblWRITpAndamentos.PK_Id = dbo.tblWRIAndamentos.FK_tblWRITpAndamento_Id join dbo.tblSIPUsuarios on tblSIPUsuarios.IDUser = tblwriandamentos.FK_tblWRIUsuarioOrigem_Id

    WHERE

    (dbo.tblWRITpAndamentos.Sigla = 'ctr')

    AND 

    (dbo.tblWRITpAndamentos.EnviaInternet = 1)

    AND 

    (dbo.tblWRIAndamentos.Data >= CONVERT(DATETIME, '2012-05-17 00:00:00', 102))) AS a

    WHERE 

     (Data < ISNULL(DataLimite, GETDATE()))

    GROUP 

    BY Recepcao, Sigla

    ORDER

    BY Recepcao, Sigla-- Tiago sou de Serra - Espirito Santo, ajudo o pessoal aqui, e saiu um programador, eu sou novato em programação SQL, estou aprendendo, mas aqui temos que fazer alguns relatorios a parte. Se puder me ajudar voce que conhece o programa, caso seja possivel passe um contato seu ( se puder é claro) no email Rafael_Santos_Rocha@hotmail.com, agradeço e aguardo uma resposta disso.

    tblSIPUsuarios

    FROM


    • Editado Rafael-Santos sexta-feira, 18 de maio de 2012 12:06 acrs
    sexta-feira, 18 de maio de 2012 12:04
  • Já vi, vocÊ está tentando buscar a tblSIPUsuarios, tenta assim, colocando só NomeUser

    SELECT
    Recepcao, MAX(Data) AS Data, MAX(TpAndamento) AS TpAndamento, NomeUser -- (erro nessa linha) 
    (SELECT DISTINCT
    dbo.tblWRIAndamentos.FK_tblWRIRecepcaoRecepcao AS Recepcao, dbo.tblWRIAndamentos.Data,  dbo .tblWRIAndamentos.FK_tblWRITpAndamento_Id AS TpAndamento, dbo.tblWRITpAndamentos.Sigla, .tblSIPUsuarios.NomeUser as NomeUser,
    (
    
    SELECT MIN(t.Data) AS Expr1
    FROM 
    
    dbo.tblWRIAndamentos AS t INNER JOIN
    dbo
    
    .tblWRITpAndamentos AS p ON p.PK_Id = t.FK_tblWRITpAndamento_Id
    WHERE 
    
    (t.FK_tblWRIRecepcaoFlagRecepcao = dbo.tblWRIAndamentos.FK_tblWRIRecepcaoFlagRecepcao) AND
    (
    
    AND  
    
    t.FK_tblWRIRecepcaoRecepcao = dbo.tblWRIAndamentos.FK_tblWRIRecepcaoRecepcao) (p.Sigla = 'iat')) AS DataLimite
    FROM 
    
    dbo.tblWRIAndamentos
    INNER
    
    inner 
    
    JOIN dbo.tblWRITpAndamentos ON dbo.tblWRITpAndamentos.PK_Id = dbo.tblWRIAndamentos.FK_tblWRITpAndamento_Id join dbo.tblSIPUsuarios on tblSIPUsuarios.IDUser = tblwriandamentos.FK_tblWRIUsuarioOrigem_Id
    WHERE
    
    (dbo.tblWRITpAndamentos.Sigla = 'ctr')
    AND 
    
    (dbo.tblWRITpAndamentos.EnviaInternet = 1)
    AND 
    
    (dbo.tblWRIAndamentos.Data >= CONVERT(DATETIME, '2012-05-17 00:00:00', 102))) AS a
    WHERE 
    
     (Data < ISNULL(DataLimite, GETDATE()))
    GROUP 
    
    BY Recepcao, Sigla
    ORDER
    
    BY Recepcao, Sigla

    Abraços, pode me adicionar: thiagokoelho@hotmail.com


    thiagokoelho

    sexta-feira, 18 de maio de 2012 12:18
  • Tiago deu certo cara, muito obrigado,

    So uma questao que eu ia abrir novamente, caso voce possa me ajudar, ja fechamos esse item aqui,

    Como eu faço para que na linha abaixo pegue a data do dia, sempre a data do dia

    AND

    (dbo.tblWRIAndamentos.Data >= CONVERT(DATETIME, '2012-05-17 00:00:00', 102))) AS aSe for possivel me ajudar com mais essa te agradeço

    sexta-feira, 18 de maio de 2012 13:25
  • Com o comando GETDATE(), que retorna a data atual.

    AND (dbo.tblWRIAndamentos.Data >= GETDATE()) AS a
    Abraços!


    thiagokoelho

    • Marcado como Resposta Rafael-Santos sexta-feira, 18 de maio de 2012 16:15
    sexta-feira, 18 de maio de 2012 13:44
  • Cara to te dando trabalho hein..rs.rs

    Seguinte se eu deixar essa forma:

    (dbo.tblWRIAndamentos.Data >= CONVERT(DATETIME, '2012-05-17 00:00:00', 102)))

    Tras 180 registros neste dia no resultado

    se eu deixar desta forma

    AND (dbo.tblWRIAndamentos.Data >= GETDATE()) AS a

    nao traz nenhum registro

    Sera que tem alguma coisa a ver com o restante do comando para baixo dessa linha?

    • Marcado como Resposta Rafael-Santos sexta-feira, 18 de maio de 2012 16:15
    sexta-feira, 18 de maio de 2012 14:51
  • Porque tem 180 registros depois do dia 17/05 e nenhum depois de hoje (18/07), GETDATE() é a data de hoje e horário do momento da query.

    thiagokoelho

    • Marcado como Resposta Rafael-Santos sexta-feira, 18 de maio de 2012 16:15
    sexta-feira, 18 de maio de 2012 14:57
  • Entendi, coloquei o dia 18/05 e trouxe 55 registros, mas com o getdate() nao traz nenhum,

    Sera que ta pegando os segundos ?

    coloquei menor que o getdate() e trouxe, so que eu preciso igual a data do dia so que talvez ta trazendo com o segundos daquele momento acho que e isso nao e?

    Sera que tem que dar um convert no campo dbo.tblWRIAndamentos.Data ?

    bom se for possivel ajudar, mas cara ja te agradeço demais pela ajuda



    • Editado Rafael-Santos sexta-feira, 18 de maio de 2012 15:28 accrs
    • Marcado como Resposta Rafael-Santos sexta-feira, 18 de maio de 2012 16:15
    sexta-feira, 18 de maio de 2012 15:13
  • Tive que fazer assim

    AND

    (dbo.tblWRIAndamentos.Data >= CONVERT (date, GETDATE (), 103) )) AS aCara muito obrigado por tudo

    • Marcado como Resposta Rafael-Santos sexta-feira, 18 de maio de 2012 16:15
    sexta-feira, 18 de maio de 2012 16:15