AJUDA COM INNER JOIN
Bom dia amigos.. estou começando a programar usando as varias facilidades do sql..e nunca usei o inner join..e estou com problemas aqui.
Preciso pesquisar dentro de apenas duas tabelas (orcamentos e caixa) os registros de codorc das duas tabelas que esteja sem pagamento efetuado,e com isso preencher um list com itens de uma terceira tabela(detorcamentos) em meu pdv
Eu fiz assim, mas nao retorna nenhum resultado. E ja vi na tabela, esta tudo gravado
Alguem pode me dar uma força? nao kero abrir 3 querys, se fosse assim conseguiria facilmente
Preciso pesquisar dentro de apenas duas tabelas (orcamentos e caixa) os registros de codorc das duas tabelas que esteja sem pagamento efetuado,e com isso preencher um list com itens de uma terceira tabela(detorcamentos) em meu pdv
Eu fiz assim, mas nao retorna nenhum resultado. E ja vi na tabela, esta tudo gravado
Set dsabre = db.OpenRecordset([Ô]select * from orcamentos as O inner join caixa as C on O.codorc = C.codorc where C.codorc = [Ô] & ORCAMENTO & [Ô] and not isnull(C.pagamento)[Ô], dbOpenDynaset)
If Not dsabre.EOF Then
Set dsenchelista = db.OpenRecordset([Ô]select * from detorcamentos where codorc = [Ô] & dsabre!codorc, dbOpenDynaset)
If Not dsenchelista.EOF Then
[ô] daqui para baixo é p preenchimento.
Alguem pode me dar uma força? nao kero abrir 3 querys, se fosse assim conseguiria facilmente
Você tem um programa de SQL para testar ela?
mas, no seu caso nao precisa usar inner join
Set dsabre = db.OpenRecordset([Ô]select * from orcamentos as O, caixa as C where O.codorc = C.codorc where C.codorc = [Ô] & ORCAMENTO & [Ô] and not isnull(C.pagamento)[Ô], dbOpenDynaset)
Set dsabre = db.OpenRecordset([Ô]select * from orcamentos as O, caixa as C where O.codorc = C.codorc where C.codorc = [Ô] & ORCAMENTO & [Ô] and not isnull(C.pagamento)[Ô], dbOpenDynaset)
ACG:
O que você fez foi um INNER JOIN não declarado...
O que você fez foi um INNER JOIN não declarado...
ACG1574, obrigado pela resposta.
Eu sei que nao precisa, mas estou fazendo em virtude de me adaptar a linguagem sql.
Eu poderia simplesmente ver apenas na tabela caixa.
Mas no trecho do codigo que vc postou existem 2 Where[ô]s
Eu sei que nao precisa, mas estou fazendo em virtude de me adaptar a linguagem sql.
Eu poderia simplesmente ver apenas na tabela caixa.
Mas no trecho do codigo que vc postou existem 2 Where[ô]s
SELECT *
FROM ORCAMENTOS, CAIXA
WHERE CAIXA.ORCAMENTO = ORCAMENTO.CODIGO
AND ORCAMENTO.CODIGO = 1010
AND NOT ISNULL(CAIXA.PAGAMENTO)
ASHKATCHUP, como assim programa de testar sql?
Voce pode me passar algum? Nao conheço coisa desse tipo
Voce pode me passar algum? Nao conheço coisa desse tipo
Qual banco de dados você está utilizando? Qual o tipo de conexão?
Access e a conexao é DAO
O próprio ACCESS tem um depurador de SQL, eu acho...
Se não, procura por um tal de WINSQL. Eu uso ele para testar. é pequeno, simples mas MUITO util!
Se não, procura por um tal de WINSQL. Eu uso ele para testar. é pequeno, simples mas MUITO util!
Saco Frito , o grande !
Se não me engano voce nao tem como no ACCESS usar em 2 tabelas diferentes 2 campos iguais chamados codorc para fazer isso que precisa.
vai dar pau , tenta mudar esse nome do campo em 1 das tabelas
pelo menos comigo não aceita no ACCESS 2000
Un exemplo de InnerJoin
Se não me engano voce nao tem como no ACCESS usar em 2 tabelas diferentes 2 campos iguais chamados codorc para fazer isso que precisa.
vai dar pau , tenta mudar esse nome do campo em 1 das tabelas
pelo menos comigo não aceita no ACCESS 2000
Un exemplo de InnerJoin
Citação:Dim rs As New ADODB.Recordset
SQL = [Ô]SELECT * FROM Freqfunc INNER JOIN Funcionarios on funcionarios.id = freqfunc.funcionario [Ô]
SQL = SQL & [Ô]WHERE freqfunc.cod > [Ô] & Val(Txtid.Text) & [Ô] ORDER BY freqfunc.cod[Ô]
rs.Open SQL, conexao
[ô]--------------------
If rs.EOF Then [ô] se nao encontrou
MsgBox [Ô]Fim de arquivo![Ô]
Else
MostraDados rs
End If
rs.Close: Set rs = Nothing
Tópico encerrado , respostas não são mais permitidas