Inquiridor
function

Discussão Geral
-
estou iniciando meus estudos em sql e não estou conseguindo criar uma function, onde preciso desenvolver as funcionalidades de operações para registrar um lançamento de movimentação em uma conta bancaria de um determinado cliente.
me ajudem por favor =D
Todas as Respostas
-
-
Luiz,
Veja se estes outros exemplos podem te ajudar:
Create Table Produtos (Codigo Int Primary Key, Descricao Varchar(10) Not Null) Go Create Table Pedidos (Codigo Int Primary key, CodProduto Int Not Null, Valor Int) Go Insert Into Produtos Values(1,'A'), (2,'B'), (3,'C') Insert Into Pedidos Values (1,1,10), (2,1,20), (3,2,30), (4,2,40), (5,1,10) Go -- Criando a Função Multi-Statement - F_RetornarProdutosXPedidos -- Create Function F_RetornarProdutosXPedidos (@CodProduto Int) Returns @Resultado Table (Codigo int, Descricao varchar(10), Valor Int) As Begin Insert @Resultado Select Pe.Codigo, Pr.Descricao, Pe.Valor from Pedidos Pe Inner Join Produtos Pr On Pe.CodProduto = Pr.Codigo Where Pe.CodProduto = @CodProduto Return End -- Execuntando a função F_RetornarProdutosXPedidos -- Select * from F_RetornarProdutosXPedidos(2) Go -- Executando a Função F_RetornarProdutosXPedidos em conjunto com Junção -- Select * from Produtos P Inner Join F_RetornarProdutosXPedidos(1) F On P.Codigo = F.Codigo Go
Ou este outro:
-- Excluindo a tabela Funcionario -- Drop table Funcionario Go -- Criando a Tabela Funcionario -- Create Table Funcionario ( Codigo Int IDENTITY not null, Nome Char(10) not null, Idade TinyInt not null, Salario Decimal(10,2) null ) Go -- Inserindo os dados na tabela Funcionarios -- INSERT Funcionario VALUES('Antonio',34,100) INSERT Funcionario VALUES('Bras',34,200) INSERT Funcionario VALUES('Carlos',21,200) INSERT Funcionario VALUES('Carla',16,200) Go -- Criando a Function F_Salario -- Create Function F_Salario (@CodFunc int) Returns Decimal(10,2) AS Begin Declare @Salario decimal(10,2), @Idade Tinyint Select @Salario = Salario, @Idade = Idade From Funcionario Where Codigo = @CodFunc IF @Idade <= 30 SET @Salario = @Salario * 1.1 ELSE SET @Salario = @Salario * 1.2 Return @Salario End Go -- Consultando os dados da Tabela Funcionario -- Select * FROM Funcionario Go -- Executando a Função F_Salario -- Select dbo.F_Salario(1) Go -- Criando a Function F_FuncPremio -- Create Function F_FuncPremio(@CodFunc INT) Returns Decimal(10,2) AS Begin Declare @ValorSalario Decimal(10,2) Select @ValorSalario=Salario From Funcionario Where Codigo = @CodFunc Return (@ValorSalario+1000) End Go -- Executando Select dbo.F_FuncPremio(2) As 'Valor do Premio....' Go -- Excluir a função atual -- Drop Function F_FuncPremio Go -- Recriar a função F_FuncPremio -- Create Function F_FuncPremio(@CodFunc INT) Returns Table AS Return (Select Salario+1000 As 'Premio' From Funcionario Where Codigo = @CodFunc) Go -- Executando novamente a função Select Premio As 'Salario + R$ 1.000' From dbo.F_FuncPremio(2) Go
Pedro Antonio Galvão Junior [MVP | MCC | MSTC | MIE | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados Relacional e Data Warehouse | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]
-
Desenvolver as funcionalidades de operações para registrar um lançamento de movimentação na conta de um determinado cliente, através do uso de uma Função programada.
esse é o exercicio, no caso poderia ser um transação de um saque por exemplo..... mas os artigos que mandou ja esta ajudando, estou pegando o jeito
-