DUVIDA SOBRE SELECT
SELECT clientes.[Nome cliente], funcionario.nomefunc, servicos.nservico
FROM clientes INNER JOIN
funcionario ON clientes.idcli = funcionario.idcli INNER JOIN
servicos ON funcionario.idfunc = servicos.idfunc
WHERE (select clientes.idcli from clientes where nome = [Ô]andre[Ô])
Porque não funciona deste jeito??
tenho um text box aonde quero inserir o nome do cliente e quando eu aperto o botão quero que ele me retorne
o resultado deste select, estou fazendo o mesmo em uma query de sql o problema e que o Ãndice da tabela clientes esta em int
FROM clientes INNER JOIN
funcionario ON clientes.idcli = funcionario.idcli INNER JOIN
servicos ON funcionario.idfunc = servicos.idfunc
WHERE (select clientes.idcli from clientes where nome = [Ô]andre[Ô])
Porque não funciona deste jeito??
tenho um text box aonde quero inserir o nome do cliente e quando eu aperto o botão quero que ele me retorne
o resultado deste select, estou fazendo o mesmo em uma query de sql o problema e que o Ãndice da tabela clientes esta em int
Uma coisa muito importante que programadores, principalmente vindos do VB6, devem entender é que erros, não são booleanos. Eles tem identificação, descrição e causa. [Ô]Não está funcionando[Ô], não nos diz muito. Sintaticamente, não vejo erro nenhum na sua query. Tem alguma mensagem de erro? O que acontece?
vc testou sua query no gerenciador do banco de dados ou na aplicação?
teste primeiro no gerenciador,lá ele reporta o erro!
teste primeiro no gerenciador,lá ele reporta o erro!
ele informa:
error in where clausule near [ô](.[ô]
unable to parse query text
e no lugar do andre eu gostaria de passar o valor de um campo text e possÃvel?
detalhe como e um banco de dados local estou usando sql server compact padrão do vb 2010
SELECT clientes.[Nome cliente], funcionario.nomefunc, servicos.nservico
FROM clientes INNER JOIN
funcionario ON clientes.idcli = funcionario.idcli INNER JOIN
servicos ON funcionario.idfunc = servicos.idfunc
WHERE (select clientes.idcli from clientes where nome = [Ô]andre[Ô])
obrigado
error in where clausule near [ô](.[ô]
unable to parse query text
e no lugar do andre eu gostaria de passar o valor de um campo text e possÃvel?
detalhe como e um banco de dados local estou usando sql server compact padrão do vb 2010
SELECT clientes.[Nome cliente], funcionario.nomefunc, servicos.nservico
FROM clientes INNER JOIN
funcionario ON clientes.idcli = funcionario.idcli INNER JOIN
servicos ON funcionario.idfunc = servicos.idfunc
WHERE (select clientes.idcli from clientes where nome = [Ô]andre[Ô])
obrigado
sobre inner join
youtube
youtube
Tente assim:
SELECT clientes.[Nome cliente], funcionario.nomefunc, servicos.nservico
FROM clientes INNER JOIN
funcionario ON clientes.idcli = funcionario.idcli INNER JOIN
servicos ON funcionario.idfunc = servicos.idfunc
WHERE Cliente.nome = [Ô]andre[Ô]
Você pode tentar assim
Access
SQL Server
Espero ter ajudado
Access
Dim sSQL As String
sSQL = [Ô][Ô]
sSQL = sSQL & [Ô]SELECT clientes.[Nome cliente], funcionario.nomefunc, servicos.nservico[Ô]
sSQL = sSQL & [Ô] FROM (clientes[Ô]
sSQL = sSQL & [Ô] INNER JOIN funcionario ON (clientes.idcli = funcionario.idcli))[Ô]
sSQL = sSQL & [Ô] INNER JOIN servicos ON (funcionario.idfunc = servicos.idfunc)[Ô]
sSQL = sSQL & [Ô] WHERE clientes.nome = [ô]andre[ô][Ô]
SQL Server
Dim sSQL As String
sSQL = [Ô][Ô]
sSQL = sSQL & [Ô]SELECT clientes.[Nome cliente], funcionario.nomefunc, servicos.nservico[Ô]
sSQL = sSQL & [Ô] FROM clientes[Ô]
sSQL = sSQL & [Ô] INNER JOIN funcionario ON (clientes.idcli = funcionario.idcli)[Ô]
sSQL = sSQL & [Ô] INNER JOIN servicos ON (funcionario.idfunc = servicos.idfunc)[Ô]
sSQL = sSQL & [Ô] WHERE clientes.nome = [ô]andre[ô][Ô]
Espero ter ajudado
Se você quer listar todos os clientes cujo nome inicia por Andre, então utilize o like no script e concatene ao texto que for para pesquisar o % (caracter curinga) ao passar o texto para consulta inclua no fim dele o percent(%).
No compact edition temos algumas limitações no que tange a funções ou querys mais elaboradas, mas para esta query faça como esta embaixo.
SELECT clientes.[Nome cliente], funcionario.nomefunc, servicos.nservico
FROM clientes
INNER JOIN funcionario
ON clientes.idcli = funcionario.idcli
INNER JOIN servicos ON funcionario.idfunc = servicos.idfunc
WHERE funcionario.nome LIKE [ô]ANDRE%[ô]
ORDER BY NOME (isto é opcional)
No compact edition temos algumas limitações no que tange a funções ou querys mais elaboradas, mas para esta query faça como esta embaixo.
SELECT clientes.[Nome cliente], funcionario.nomefunc, servicos.nservico
FROM clientes
INNER JOIN funcionario
ON clientes.idcli = funcionario.idcli
INNER JOIN servicos ON funcionario.idfunc = servicos.idfunc
WHERE funcionario.nome LIKE [ô]ANDRE%[ô]
ORDER BY NOME (isto é opcional)
desse jeito sei que funciona soque o problema e que eu dou o 2 select para descobrir o id desse cliente, que no caso e o Ãndice da tabela clientes, porque eu preciso passar o Ãndice para a query e não o nome pois na hora que o cliente digitar na text box de pesquisa sera o nome do cliente e não o id do mesmo...
por isso a necessidade do 2 select
captaram???
como eu poderia fazer esta pesquisa?
preciso pegar o nome do cliente na textbox.text para descobrir o Ãndice dele ai sim fazer a pesquisa pela id dele,
minhas tabelas são indexadas por int
obrigado
por isso a necessidade do 2 select
captaram???
como eu poderia fazer esta pesquisa?
preciso pegar o nome do cliente na textbox.text para descobrir o Ãndice dele ai sim fazer a pesquisa pela id dele,
minhas tabelas são indexadas por int
obrigado
Faça um FORM de pesquisa com um ListBox ou Grid(sugiro o Grid)
No Change do TextBox o você faz assim
sSQL = [Ô]SELECT IDCLI, NOME_CLIENTE FROM CLIENTES WHERE NOME_CLIENTE LIKE [ô]%[Ô] & txtNome.Text & [Ô]%[ô][Ô]
....
....
Faça o resto do processo, ai o resultado da Query você vai preenchendo o grid!
Ai ao clicar no cliente no grid você pega o IDCLI que esta no grid também e faça a consulta de acordo com o que precisar!
Deu uma clariada nas ideias?
No Change do TextBox o você faz assim
sSQL = [Ô]SELECT IDCLI, NOME_CLIENTE FROM CLIENTES WHERE NOME_CLIENTE LIKE [ô]%[Ô] & txtNome.Text & [Ô]%[ô][Ô]
....
....
Faça o resto do processo, ai o resultado da Query você vai preenchendo o grid!
Ai ao clicar no cliente no grid você pega o IDCLI que esta no grid também e faça a consulta de acordo com o que precisar!
Deu uma clariada nas ideias?
O ID do cliente pode ser retornado na mesma consulta é só incluir o campo, não precisa de uma subquery para isto, os dados retornados já estarão com a informação e assim você poderá utilizá-la, afinal o indice tá na mesma tabela e a query pode ser alterada para retornar os dados que você quer.
Tópico encerrado , respostas não são mais permitidas