Gostaria de saber como fazer para por parâmetro nesta view tipo id do cliente:
SELECT pedidos.datapedido,
pedidos.quantidade,
pedidos.nota,
pessoas.nome,
pessoas.cpf,
produtos.descricao,
produtos.valorunitario,
produtos.valorunitario * pedidos.quantidade AS totalpedido,
FROM pedidos
JOIN pessoas ON pedidos.fkpessoas = pessoas.idpessoa
JOIN produtos ON pedidos.fkprodutos = produtos.idprodutos
GROUP BY pessoas.nome, produtos.descricao, pedidos.datapedido,
pedidos.quantidade, produtos.valorunitario, pessoas.cpf, pedidos.nota;
Em qual ferramenta ou plataforma de desenvolvimento?
Se for Java: http://docs.oracle.com/javase/tutorial/jdbc/basics/prepared.html
Exemplo:
statement = conexao.prepareStatement("select nome, etc from sua_view where id = ?");
statement.setInt(1, id);
Se está falando de views no banco de dados, a resposta simples é que você nao passa.
Esse é um dos problemas com views, você só consegue aplicar um parâmetro no resultado inteiro dela (como no exemplo dado pela @javaflex)
Em alguns bancos de dados você pode tentar usar table functions, que pode ter um comportamento semelhante a uma view que aceita parâmetros, mas geralmente é um pouco mais burocrático de usar.
2 curtidas
É mais burocrático mesmo usar function para este caso. Function só bom quando precisamos implementar alguma lógica mais complexa (com if/while, etc) antes de retornar os dados.
@Anderela_Vieira, o campo pelo qual deseja mandar o banco filtrar terá que estar disponível na view, mas no seu SQL não é obrigatorio trazer esta coluna, como mostrei no exemplo. Lembre-se que é aconselhável criar um índice para a coluna que for usar no filtro. Como você falou em id, acredito que seja a chave primária e já tenha índice.
2 curtidas
Obrigado meninos, realmente View não vai resolver meu caso
javaflex e AbelBueno
Tanks.
Não entendi, por que não vai resolver o problema? Basta filtrar pela coluna, onde a mesma deverá estar disponível na view.
select coluna1, coluna2 from suaview where colunaquevaifiltrar = ?