ATRIBUIR VALOR A VARIAVEL EM VB6
Olá.
Estou enfrentando o erro de [ô]Invalid column name e mostra o valor atribuido a uma variavel como o problema
Tenho a seguinte query:
SQL = [Ô] if object_id([ô]tempdb..#MovSeq[ô],[ô]U[ô]) is not null drop table #MovSeq;[Ô] & _
[Ô] declare @Data_Inicio datetime, @Data_Fim datetime; set dateformat dmy; set @Data_Inicio = DataInicio; set @Data_Fim = DataFinal; set @Data_Fim = DateAdd(day, +1, @Data_Fim); [Ô] & _
[Ô] with Mov as ( SELECT EI.Cod_Empresa, EI.Cod_Estoque, EI.Cod_Produto, [ô]E[ô] as Tipo_Mov, E.Dta_Entrada as Data_Mov, EI.id_Doc as NF, EI.Qtde, EI.V_Unitario, EI.V_Total [Ô] & _
[Ô] from Entrada_Itens as EI inner join Entrada as E on EI.Cod_Empresa=E.Cod_Empresa and EI.id_Doc=E.id_Doc [Ô] & _
[Ô] where E.Dta_Entrada >= @Data_Inicio and EI.Cod_Empresa=[ô][Ô] & Sys.Empresa & [Ô][ô] and EI.Cod_Estoque=[ô][Ô] & dcEstoque.BoundText & [Ô][ô] and EI.Cod_Produto=[ô][Ô] & dtProdutos.BoundText & [Ô][ô] [Ô] & _
[Ô] Union [Ô] & _
[Ô] SELECT SI.Cod_Empresa, SI.Cod_Estoque, SI.Cod_Produto, [ô]S[ô], S.Dta_Entrada , SI.id_Doc, -SI.Qtde, SI.V_Unitario, SI.V_Total [Ô] & _
[Ô] from Saida_Itens as SI inner join Saida as S on SI.Cod_Empresa=S.Cod_Empresa and SI.id_Doc=S.id_Doc [Ô] & _
[Ô] where S.Dta_Entrada >= @Data_Inicio and SI.Cod_Empresa=[ô][Ô] & Sys.Empresa & [Ô][ô] and SI.Cod_Estoque=[ô][Ô] & dcEstoque.BoundText & [Ô][ô] and SI.Cod_Produto=[ô][Ô] & dtProdutos.BoundText & [Ô][ô] [Ô] & _
[Ô] Union [Ô] & _
[Ô] SELECT Cod_Empresa, Cod_Estoque, Cod_Produto, [ô]A[ô], @Data_Inicio, null, null, null, null [Ô] & _
[Ô] From Estoque [Ô] & _
[Ô] where Cod_Empresa=[ô][Ô] & Sys.Empresa & [Ô][ô] and Cod_Estoque=[ô][Ô] & dcEstoque.BoundText & [Ô][ô] and Cod_Produto=[ô][Ô] & dtProdutos.BoundText & [Ô][ô]) [Ô] & _
[Ô] SELECT *, Seq= row_number() over (partition by Cod_Empresa, Cod_Estoque, Cod_Produto order by Data_Mov desc, Tipo_Mov desc) into #MovSeq from Mov; [Ô] & _
[Ô] create unique clustered index IndMovSeq on #MovSeq (Cod_Empresa, Cod_Estoque, Cod_Produto, Seq); [Ô] & _
[Ô] SELECT M.Cod_Empresa, M.Cod_Estoque, M.Cod_Produto, P.Descricao,[Ô] & _
[Ô] Estoque= case when M.Seq=1 then E.Qtde_Estoque else (E.Qtde_Estoque - (SELECT sum(Mi.Qtde) from #MovSeq as Mi [Ô] & _
[Ô] Where Mi.Cod_Empresa = M.Cod_Empresa And Mi.Cod_Estoque = M.Cod_Estoque And Mi.Cod_Produto = M.Cod_Produto and Mi.Seq < M.Seq)) end [Ô] & _
[Ô] from #MovSeq as M inner join [Ô] & _
[Ô] Estoque as E on M.Cod_Empresa=E.Cod_Empresa and M.Cod_Estoque=E.Cod_Estoque and M.Cod_Produto=E.Cod_Produto inner join [Ô] & _
[Ô] Produtos as P on M.Cod_Empresa=P.Cod_Empresa and M.Cod_Estoque=P.Cod_Estoque and M.Cod_Produto=P.Cod_Produto [Ô] & _
[Ô] where Data_Mov < @Data_Fim [Ô] & _
[Ô] order by M.Cod_Empresa, M.Cod_Estoque, M.Cod_Produto, Seq desc; [Ô] & _
[Ô] drop table #MovSeq;[Ô]
Como posso solucionar esse problema?
Obrigado
Estou enfrentando o erro de [ô]Invalid column name e mostra o valor atribuido a uma variavel como o problema
Tenho a seguinte query:
SQL = [Ô] if object_id([ô]tempdb..#MovSeq[ô],[ô]U[ô]) is not null drop table #MovSeq;[Ô] & _
[Ô] declare @Data_Inicio datetime, @Data_Fim datetime; set dateformat dmy; set @Data_Inicio = DataInicio; set @Data_Fim = DataFinal; set @Data_Fim = DateAdd(day, +1, @Data_Fim); [Ô] & _
[Ô] with Mov as ( SELECT EI.Cod_Empresa, EI.Cod_Estoque, EI.Cod_Produto, [ô]E[ô] as Tipo_Mov, E.Dta_Entrada as Data_Mov, EI.id_Doc as NF, EI.Qtde, EI.V_Unitario, EI.V_Total [Ô] & _
[Ô] from Entrada_Itens as EI inner join Entrada as E on EI.Cod_Empresa=E.Cod_Empresa and EI.id_Doc=E.id_Doc [Ô] & _
[Ô] where E.Dta_Entrada >= @Data_Inicio and EI.Cod_Empresa=[ô][Ô] & Sys.Empresa & [Ô][ô] and EI.Cod_Estoque=[ô][Ô] & dcEstoque.BoundText & [Ô][ô] and EI.Cod_Produto=[ô][Ô] & dtProdutos.BoundText & [Ô][ô] [Ô] & _
[Ô] Union [Ô] & _
[Ô] SELECT SI.Cod_Empresa, SI.Cod_Estoque, SI.Cod_Produto, [ô]S[ô], S.Dta_Entrada , SI.id_Doc, -SI.Qtde, SI.V_Unitario, SI.V_Total [Ô] & _
[Ô] from Saida_Itens as SI inner join Saida as S on SI.Cod_Empresa=S.Cod_Empresa and SI.id_Doc=S.id_Doc [Ô] & _
[Ô] where S.Dta_Entrada >= @Data_Inicio and SI.Cod_Empresa=[ô][Ô] & Sys.Empresa & [Ô][ô] and SI.Cod_Estoque=[ô][Ô] & dcEstoque.BoundText & [Ô][ô] and SI.Cod_Produto=[ô][Ô] & dtProdutos.BoundText & [Ô][ô] [Ô] & _
[Ô] Union [Ô] & _
[Ô] SELECT Cod_Empresa, Cod_Estoque, Cod_Produto, [ô]A[ô], @Data_Inicio, null, null, null, null [Ô] & _
[Ô] From Estoque [Ô] & _
[Ô] where Cod_Empresa=[ô][Ô] & Sys.Empresa & [Ô][ô] and Cod_Estoque=[ô][Ô] & dcEstoque.BoundText & [Ô][ô] and Cod_Produto=[ô][Ô] & dtProdutos.BoundText & [Ô][ô]) [Ô] & _
[Ô] SELECT *, Seq= row_number() over (partition by Cod_Empresa, Cod_Estoque, Cod_Produto order by Data_Mov desc, Tipo_Mov desc) into #MovSeq from Mov; [Ô] & _
[Ô] create unique clustered index IndMovSeq on #MovSeq (Cod_Empresa, Cod_Estoque, Cod_Produto, Seq); [Ô] & _
[Ô] SELECT M.Cod_Empresa, M.Cod_Estoque, M.Cod_Produto, P.Descricao,[Ô] & _
[Ô] Estoque= case when M.Seq=1 then E.Qtde_Estoque else (E.Qtde_Estoque - (SELECT sum(Mi.Qtde) from #MovSeq as Mi [Ô] & _
[Ô] Where Mi.Cod_Empresa = M.Cod_Empresa And Mi.Cod_Estoque = M.Cod_Estoque And Mi.Cod_Produto = M.Cod_Produto and Mi.Seq < M.Seq)) end [Ô] & _
[Ô] from #MovSeq as M inner join [Ô] & _
[Ô] Estoque as E on M.Cod_Empresa=E.Cod_Empresa and M.Cod_Estoque=E.Cod_Estoque and M.Cod_Produto=E.Cod_Produto inner join [Ô] & _
[Ô] Produtos as P on M.Cod_Empresa=P.Cod_Empresa and M.Cod_Estoque=P.Cod_Estoque and M.Cod_Produto=P.Cod_Produto [Ô] & _
[Ô] where Data_Mov < @Data_Fim [Ô] & _
[Ô] order by M.Cod_Empresa, M.Cod_Estoque, M.Cod_Produto, Seq desc; [Ô] & _
[Ô] drop table #MovSeq;[Ô]
Como posso solucionar esse problema?
Obrigado
Paulo boa noite, o erro que esta dando é que o nome da coluna esta errado, isso provavelmente esta acontecendo, pq no select o nome da coluna deve estar diferente do que esta no banco e/ou o nome que vc colocou na variável deve ser diferente do nome do select, estou deduzindo pq vc não colocou a variável que esta dando a mensagem, más acredito que seja uma das duas opções que coloquei, da uma olhada ai e depois posta blz
Como o próprio erro já diz
Invalid column name (Nome de Coluna Inválido)
Verifica se todos os nome das colunas de cada tabela esta correto, se você montou o SQL e depois alterou a tabela.
o Union ou Union All é interessante verificar que os dois existem diferenças que são de grandes aspectos
Outra coisa ñao é criticando não, mas leve pelo lado de critica construtiva!
Não dá para entender nada nesse SQL que você colocou para analisarmos teremos que reorganizar o mesmo para interpretar e conseguir dar uma resposta plausÃvel pra você.
Onde acontece o erro em qual linha?
Qual o nome da coluna que é alertada (se for mostrada em mensagem).
Tente descrever melhor ou siga as dicas que coloquei no inicio da resposta para ve rse consegue solucionar o problema!
Valeu.
Invalid column name (Nome de Coluna Inválido)
Verifica se todos os nome das colunas de cada tabela esta correto, se você montou o SQL e depois alterou a tabela.
o Union ou Union All é interessante verificar que os dois existem diferenças que são de grandes aspectos
Citação:Explicando de uma forma rápida e sem rodeios:
UNION realiza um DISTINCT entre os SELECTS, ou seja, os registros que tiverem informação repetida só apareceram uma vez no ResultSet
UNION ALL simplesmente une os SELECTS, ou seja, os registros que tiverem informação repetido apareceram no ResultSet quantas vezes eles existirem
Existem algumas regras para se usar o UNION e o UNION ALL (e são as mesmas):
Os ResultSet devem conter o mesmo número de colunas e devem ser do mesmo tipo (INT, NUMERIC, VARCHAR); caso contrário o SQL Server retornará um erro;
O nome das colunas deverá estar no primeiro SELECT e será atribuÃdo as demais colunas;
A cláusula de ordenação ORDER BY só poderá ser usada após o último SELECT e ordenará todo o resultado que foi unido pelo UNION ou pelo UNION ALL; caso contrário, o SQL Server retornará um erro.
Outra coisa ñao é criticando não, mas leve pelo lado de critica construtiva!
Não dá para entender nada nesse SQL que você colocou para analisarmos teremos que reorganizar o mesmo para interpretar e conseguir dar uma resposta plausÃvel pra você.
Onde acontece o erro em qual linha?
Qual o nome da coluna que é alertada (se for mostrada em mensagem).
Tente descrever melhor ou siga as dicas que coloquei no inicio da resposta para ve rse consegue solucionar o problema!
Valeu.
Citação::
Paulo boa noite, o erro que esta dando é que o nome da coluna esta errado, isso provavelmente esta acontecendo, pq no select o nome da coluna deve estar diferente do que esta no banco e/ou o nome que vc colocou na variável deve ser diferente do nome do select, estou deduzindo pq vc não colocou a variável que esta dando a mensagem, más acredito que seja uma das duas opções que coloquei, da uma olhada ai e depois posta blz
O erro aparece conforme imagem e diz respeito ao valor que é atribuido à variável @Data_Inicio. Esse valor é uma váriável que está no formulário chamada DataInicio.
Ex. Quando digitado o valor no formulário a varÃavel DataInicio recebe esse valor e ele é passado para a Query. é exatamente nesse ponto que ocorre o erro.
Testei a query no SSMS e funcionou perfeitamente retornando o que é esperado, meu grande problema está em colocar essa query dentro do VB6.
As duas variáveis são tipo data e gostaria de saber se a forma como está sendo atribuido o valor da variável na query está certo.
Obrigado pela ajuda.
Obrigado pela ajuda.
A solução foi atribuir a variável da seguinte forma:
@Data_Inicio = [Ô] & Format ( DataInicio,[Ô]yyyy-mm-dd[Ô]) & [Ô];
Valeu.
A solução foi atribuir a variável da seguinte forma:
@Data_Inicio = [Ô] & Format ( DataInicio,[Ô]yyyy-mm-dd[Ô]) & [Ô];
Valeu.
Tópico encerrado , respostas não são mais permitidas