Boa tarde estou com dificuldades para executar um comando no sqlserver na tabela contas pagar tbContasPagar queria trazer Razao Social da tabela tbFornecedor de um único fornecedor até tentei segue o código abaixo
SELECT cp.*, f.razao_fornec FROM tbContasPagar cp, tbFornecedor f WHERE cp.cod_fornec = f.cod_fornec AND status_cPagar = ‘Aberto’ AND cod_fornec = ‘1’
e esta dando este erro
Mensagem 209, Nível 16, Estado 1, Linha 3
Nome da coluna ‘cod_fornec’ ambíguo.
Essas tabelas não possuem campo estrangeiro ?
Seria interessante você tratar isso com um campo estrangeiro caso faça parte do negócio. E busca esses dados com um join dai iria busca tudo de uma maneira bem correta. Caso queira limitar a busca como fez com o where você pode tá utilizando o having ou pode usar o where com having também acredito que de uma resultado melhor.
vou te da um exemplo de um join que eu fiz.
ver se funciona pra você.
vou criar aqui no meu código e você modifica para o seu.
bom vou te manda o codigo que eu fiz. e te explicar, não sou super experiente em banco de dados, mas é o que temos ne.
eu criei duas tabelas
rapidas vou lhe explicar o uso desse and que vc fez.
select cl.*, v.ven_id from cliente cl inner join venda v on cl.cli_id = v.ven_cli_id where cl.cli_id = 1 or cl.cli_nome like 'joy%' order by cli_nome;
no lugar do and usei o or.
porque o uso do or, ele vai buscar o que tem na primeira condição ou o que tem na segunda condição, ou seja se uma não satisfazer ele busca a outra.
ja no and ele so vai trazer a busca se as duas satisfazerem. as vezes não ira retorna nada por este motivo.