Inquiridor
Subconsulta no SQL Server Mobile Edition

Pergunta
-
Olá Pessoal, estou desenvolvendo uma aplicação em Visual Studio 2005 para Pocket PC utilizando Sql Server Mobile Edition, e tive a necessidade de criar uma subconsulta ou um left join mas não funciona, alguém sabe me dizer se realmente essa versão não suporta esse tipo sql, ou se existe alguma outra forma de fazer isso? Aguardo um retorno.
Grata desde já,
Ercília
Ercília
Todas as Respostas
-
Ercília,
Qual é a versão deste SQL Server que você esta utilizando?
Você destacou SQL Server Mobile Edition, por acaso não seria o SQL Server Compact Edition?
Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com] -
Eu utilizo a versão padrão que no Visual Studio 2005 para mobile, que acredito ser o SQL Server Compact Edition, a extensão do arquivo do banco é ".sdf". Já baixei algumas atualizações desse banco, mas o problema ainda persiste. Alguém tem alguma ideia do q seja?
Ercília -
Ercília,
É a versão SQL Server Compact Edition, que você esta utilizando!!!
Qual seria a mensagem de erro que você esta recebendo? Poderia postar sua código utilizado neste subquery.
Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com] -
Eu criei um datasource e utilizei o query builder para montar o select. O select correto seria:
SELECT PRODUTO.CD_REFPRO, PRODUTO.DS_PRODUTO, PRODUTO.VL_PCOVEN, PRODUTO.PR_DESCONTO, PRODUTO.DS_GRUPO, PRODUTO.SALDO,
PRODUTO.IN_FATOR
FROM PRODUTO LEFT OUTER JOIN
HISTORICO ON PRODUTO.CD_REFPRO = HISTORICO.CD_REFPROmas qd coloco o left já aparece erro na sintaxe do sql, colocando um "{oj" depois left:
SELECT PRODUTO.CD_REFPRO, PRODUTO.DS_PRODUTO, PRODUTO.VL_PCOVEN, PRODUTO.PR_DESCONTO, PRODUTO.DS_GRUPO, PRODUTO.SALDO,
PRODUTO.IN_FATOR
FROM { oj PRODUTO LEFT OUTER JOIN
HISTORICO ON PRODUTO.CD_REFPRO = HISTORICO.CD_REFPRO }e qd mando executar dá a seguinte mensagem de erro:
Error Message: There was an error parsing the query. [Token line number = 1, Token line offset = 142, Token in error = { oj]
Alguém tem alguma ideia do q seja isso?
Ercília -
Ercília,
Aparentemente este código este certo, talvez o SQL Server Compact Edition não esteja reconhecendo a declaração do Left Outer Join, poderíamos tentar substituir por Left Join.
Tente assim:
SELECT PRODUTO.CD_REFPRO, PRODUTO.DS_PRODUTO,
PRODUTO.VL_PCOVEN, PRODUTO.PR_DESCONTO,
PRODUTO.DS_GRUPO, PRODUTO.SALDO, PRODUTO.IN_FATOR
FROM PRODUTO LEFT JOIN HISTORICO
ON PRODUTO.CD_REFPRO = HISTORICO.CD_REFPRO
Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com] -
-
Ercília,
Você já consultou a documentação do SQL CE?
Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com] -
-
Ercília,
Não acredito que seja um problema do SQL Server CE, eu também consultei diversas fontes inclusive o Books On-Line, esta query que você tentando executar seria em alguma aplicação?
Se for, qual é o componente de banco de dados que você esta utilizando?
Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]